diff --git a/.github/workflows/scorecard.yaml b/.github/workflows/scorecard.yaml index 7088be1b44..20424324c1 100644 --- a/.github/workflows/scorecard.yaml +++ b/.github/workflows/scorecard.yaml @@ -67,6 +67,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@4dd16135b69a43b6c8efb853346f8437d92d3c93 # v3.26.6 + uses: github/codeql-action/upload-sarif@8214744c546c1e5c8f03dde8fab3a7353211988d # v3.26.7 with: sarif_file: results.sarif diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 335cc9a673..830889fb44 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -9,7 +9,7 @@ { "label": "worker", "type": "shell", - "command": "invoke int.worker", + "command": "invoke worker", "problemMatcher": [], }, { diff --git a/contrib/container/dev-docker-compose.yml b/contrib/container/dev-docker-compose.yml index 94e72abfc3..54636da3d5 100644 --- a/contrib/container/dev-docker-compose.yml +++ b/contrib/container/dev-docker-compose.yml @@ -56,7 +56,7 @@ services: inventree-dev-worker: image: inventree-dev-image build: *build_config - command: invoke int.worker + command: invoke worker depends_on: - inventree-dev-server volumes: diff --git a/contrib/container/docker-compose.yml b/contrib/container/docker-compose.yml index 93440934db..6a0b001f8b 100644 --- a/contrib/container/docker-compose.yml +++ b/contrib/container/docker-compose.yml @@ -83,7 +83,7 @@ services: # If you wish to specify a particular InvenTree version, do so here image: inventree/inventree:${INVENTREE_TAG:-stable} container_name: inventree-worker - command: invoke int.worker + command: invoke worker depends_on: - inventree-server env_file: diff --git a/docs/docs/barcodes/barcodes.md b/docs/docs/barcodes/barcodes.md index 22c07cc37f..a51c3dcc96 100644 --- a/docs/docs/barcodes/barcodes.md +++ b/docs/docs/barcodes/barcodes.md @@ -56,3 +56,11 @@ If no match is found for the scanned barcode, the following error message is dis ## App Integration Barcode scanning is a key feature of the [companion mobile app](../app/barcode.md). + +## Barcode History + +If enabled, InvenTree can retain logs of the most recent barcode scans. This can be very useful for debugging or auditing purpopes. + +Refer to the [barcode settings](../settings/global.md#barcodes) to enable barcode history logging. + +The barcode history can be viewed via the admin panel in the web interface. diff --git a/docs/docs/extend/plugins/panel.md b/docs/docs/extend/plugins/panel.md index f91c175ab1..d19c568475 100644 --- a/docs/docs/extend/plugins/panel.md +++ b/docs/docs/extend/plugins/panel.md @@ -4,6 +4,12 @@ title: Panel Mixin ## PanelMixin +!!! warning "Legacy User Interface" + This plugin mixin class is designed specifically for the the *legacy* user interface (which is rendered on the server using django templates). The new user interface (which is rendered on the client using React) does not support this mixin class. Instead, refer to the new [User Interface Mixin](./ui.md) class. + +!!! warning "Deprecated Class" + This mixin class is considered deprecated, and will be removed in the 1.0.0 release. + The `PanelMixin` enables plugins to render custom content to "panels" on individual pages in the web interface. Most pages in the web interface support multiple panels, which are selected via the sidebar menu on the left side of the screen: diff --git a/docs/docs/extend/plugins/ui.md b/docs/docs/extend/plugins/ui.md new file mode 100644 index 0000000000..1603687842 --- /dev/null +++ b/docs/docs/extend/plugins/ui.md @@ -0,0 +1,102 @@ +--- +title: User Interface Mixin +--- + +## User Interface Mixin + +The *User Interface* mixin class provides a set of methods to implement custom functionality for the InvenTree web interface. + +### Enable User Interface Mixin + +To enable user interface plugins, the global setting `ENABLE_PLUGINS_INTERFACE` must be enabled, in the [plugin settings](../../settings/global.md#plugin-settings). + +## Plugin Context + +When rendering certain content in the user interface, the rendering functions are passed a `context` object which contains information about the current page being rendered. The type of the `context` object is defined in the `PluginContext` file: + +{{ includefile("src/frontend/src/components/plugins/PluginContext.tsx", title="Plugin Context", fmt="javascript") }} + +## Custom Panels + +Many of the pages in the InvenTree web interface are built using a series of "panels" which are displayed on the page. Custom panels can be added to these pages, by implementing the `get_ui_panels` method: + +::: plugin.base.integration.UserInterfaceMixin.UserInterfaceMixin.get_ui_panels + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_sources: True + summary: False + members: [] + +The custom panels can display content which is generated either on the server side, or on the client side (see below). + +### Server Side Rendering + +The panel content can be generated on the server side, by returning a 'content' attribute in the response. This 'content' attribute is expected to be raw HTML, and is rendered directly into the page. This is particularly useful for displaying static content. + +Server-side rendering is simple to implement, and can make use of the powerful Django templating system. + +Refer to the [sample plugin](#sample-plugin) for an example of how to implement server side rendering for custom panels. + +**Advantages:** + +- Simple to implement +- Can use Django templates to render content +- Has access to the full InvenTree database, and content not available on the client side (via the API) + +**Disadvantages:** + +- Content is rendered on the server side, and cannot be updated without a page refresh +- Content is not interactive + +### Client Side Rendering + +The panel content can also be generated on the client side, by returning a 'source' attribute in the response. This 'source' attribute is expected to be a URL which points to a JavaScript file which will be loaded by the client. + +Refer to the [sample plugin](#sample-plugin) for an example of how to implement client side rendering for custom panels. + +#### Panel Render Function + +The JavaScript file must implement a `renderPanel` function, which is called by the client when the panel is rendered. This function is passed two parameters: + +- `target`: The HTML element which the panel content should be rendered into +- `context`: A dictionary of context data which can be used to render the panel content + + +**Example** + +```javascript +export function renderPanel(target, context) { + target.innerHTML = "

Hello, world!

"; +} +``` + +#### Panel Visibility Function + +The JavaScript file can also implement a `isPanelHidden` function, which is called by the client to determine if the panel is displayed. This function is passed a single parameter, *context* - which is the same as the context data passed to the `renderPanel` function. + +The `isPanelHidden` function should return a boolean value, which determines if the panel is displayed or not, based on the context data. + +If the `isPanelHidden` function is not implemented, the panel will be displayed by default. + +**Example** + +```javascript +export function isPanelHidden(context) { + // Only visible for active parts + return context.model == 'part' && context.instance?.active; +} +``` + +## Sample Plugin + +A sample plugin which implements custom user interface functionality is provided in the InvenTree source code: + +::: plugin.samples.integration.user_interface_sample.SampleUserInterfacePlugin + options: + show_bases: False + show_root_heading: False + show_root_toc_entry: False + show_source: True + members: [] diff --git a/docs/docs/faq.md b/docs/docs/faq.md index 17cfdf84fe..d8b51ecac6 100644 --- a/docs/docs/faq.md +++ b/docs/docs/faq.md @@ -107,7 +107,7 @@ The background worker process must be started separately to the web-server appli From the top-level source directory, run the following command from a separate terminal, while the server is already running: ``` -invoke int.worker +invoke worker ``` !!! info "Supervisor" diff --git a/docs/docs/settings/global.md b/docs/docs/settings/global.md index d2ecaf44e4..241ac74f0d 100644 --- a/docs/docs/settings/global.md +++ b/docs/docs/settings/global.md @@ -90,6 +90,8 @@ Configuration of barcode functionality: {{ globalsetting("BARCODE_WEBCAM_SUPPORT") }} {{ globalsetting("BARCODE_SHOW_TEXT") }} {{ globalsetting("BARCODE_GENERATION_PLUGIN") }} +{{ globalsetting("BARCODE_STORE_RESULTS") }} +{{ globalsetting("BARCODE_RESULTS_MAX_NUM") }} ### Pricing and Currency @@ -121,8 +123,6 @@ Configuration of report generation: {{ globalsetting("REPORT_DEFAULT_PAGE_SIZE") }} {{ globalsetting("REPORT_DEBUG_MODE") }} {{ globalsetting("REPORT_LOG_ERRORS") }} -{{ globalsetting("REPORT_ENABLE_TEST_REPORT") }} -{{ globalsetting("REPORT_ATTACH_TEST_REPORT") }} ### Parts @@ -208,7 +208,6 @@ Refer to the [return order settings](../order/return_order.md#return-order-setti ### Plugin Settings - | Name | Description | Default | Units | | ---- | ----------- | ------- | ----- | {{ globalsetting("PLUGIN_ON_STARTUP") }} @@ -218,3 +217,4 @@ Refer to the [return order settings](../order/return_order.md#return-order-setti {{ globalsetting("ENABLE_PLUGINS_APP") }} {{ globalsetting("ENABLE_PLUGINS_SCHEDULE") }} {{ globalsetting("ENABLE_PLUGINS_EVENTS") }} +{{ globalsetting("ENABLE_PLUGINS_INTERFACE") }} diff --git a/docs/docs/start/bare_dev.md b/docs/docs/start/bare_dev.md index 1e02469c63..51324570b9 100644 --- a/docs/docs/start/bare_dev.md +++ b/docs/docs/start/bare_dev.md @@ -52,7 +52,7 @@ source ./env/bin/activate ### Start Background Worker ``` -(env) invoke int.worker +(env) invoke worker ``` This will start the background process manager in the current shell. diff --git a/docs/docs/start/config.md b/docs/docs/start/config.md index 5653b8a659..0fa4cf1af8 100644 --- a/docs/docs/start/config.md +++ b/docs/docs/start/config.md @@ -26,7 +26,7 @@ The InvenTree server tries to locate the `config.yaml` configuration file on sta The configuration file *template* can be found on [GitHub]({{ sourcefile("src/backend/InvenTree/config_template.yaml") }}), and is shown below: -{{ includefile("src/backend/InvenTree/config_template.yaml", "Configuration File Template", format="yaml") }} +{{ includefile("src/backend/InvenTree/config_template.yaml", "Configuration File Template", fmt="yaml") }} !!! info "Template File" The default configuration file (as defined by the template linked above) will be copied to the specified configuration file location on first run, if a configuration file is not found in that location. diff --git a/docs/docs/start/docker_install.md b/docs/docs/start/docker_install.md index 489e904898..1f9d11942a 100644 --- a/docs/docs/start/docker_install.md +++ b/docs/docs/start/docker_install.md @@ -247,7 +247,7 @@ index 8adee63..dc3993c 100644 - image: inventree/inventree:${INVENTREE_TAG:-stable} + image: inventree/inventree:${INVENTREE_TAG:-stable}-custom + pull_policy: never - command: invoke int.worker + command: invoke worker depends_on: - inventree-server ``` diff --git a/docs/mkdocs.yml b/docs/mkdocs.yml index 059a7fb10b..b9d4fdd137 100644 --- a/docs/mkdocs.yml +++ b/docs/mkdocs.yml @@ -213,6 +213,7 @@ nav: - Schedule Mixin: extend/plugins/schedule.md - Settings Mixin: extend/plugins/settings.md - URL Mixin: extend/plugins/urls.md + - User Interface Mixin: extend/plugins/ui.md - Validation Mixin: extend/plugins/validation.md - Machines: - Overview: extend/machines/overview.md diff --git a/docs/requirements.txt b/docs/requirements.txt index 66669e566e..ec5c9a02b6 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -173,9 +173,9 @@ idna==3.7 \ # anyio # httpx # requests -importlib-metadata==8.4.0 \ - --hash=sha256:66f342cc6ac9818fc6ff340576acd24d65ba0b3efabb2b4ac08b598965a4a2f1 \ - --hash=sha256:9a547d3bc3608b025f93d403fdd1aae741c24fbb8314df4b155675742ce303c5 +importlib-metadata==8.5.0 \ + --hash=sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b \ + --hash=sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7 # via # markdown # mkdocs @@ -301,17 +301,17 @@ mkdocs-get-deps==0.2.0 \ --hash=sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c \ --hash=sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134 # via mkdocs -mkdocs-git-revision-date-localized-plugin==1.2.8 \ - --hash=sha256:6e09c308bb27bcf36b211d17b74152ecc2837cdfc351237f70cffc723ef0fd99 \ - --hash=sha256:c7ec3b1481ca23134269e84927bd8a5dc1aa359c0e515b832dbd5d25019b5748 +mkdocs-git-revision-date-localized-plugin==1.2.9 \ + --hash=sha256:dea5c8067c23df30275702a1708885500fadf0abfb595b60e698bffc79c7a423 \ + --hash=sha256:df9a50873fba3a42ce9123885f8c53d589e90ef6c2443fe3280ef1e8d33c8f65 # via -r docs/requirements.in mkdocs-include-markdown-plugin==6.2.2 \ --hash=sha256:d293950f6499d2944291ca7b9bc4a60e652bbfd3e3a42b564f6cceee268694e7 \ --hash=sha256:f2bd5026650492a581d2fd44be6c22f90391910d76582b96a34c264f2d17875d # via -r docs/requirements.in -mkdocs-macros-plugin==1.0.5 \ - --hash=sha256:f60e26f711f5a830ddf1e7980865bf5c0f1180db56109803cdd280073c1a050a \ - --hash=sha256:fe348d75f01c911f362b6d998c57b3d85b505876dde69db924f2c512c395c328 +mkdocs-macros-plugin==1.2.0 \ + --hash=sha256:3e442f8f37aa69710a69b5389e6b6cd0f54f4fcaee354aa57a61735ba8f97d27 \ + --hash=sha256:7603b85cb336d669e29a8a9cc3af8b90767ffdf6021b3e023d5ec2e0a1f927a7 # via -r docs/requirements.in mkdocs-material==9.5.34 \ --hash=sha256:1e60ddf716cfb5679dfd65900b8a25d277064ed82d9a53cd5190e3f894df7840 \ @@ -342,7 +342,9 @@ neoteroi-mkdocs==1.1.0 \ packaging==24.0 \ --hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \ --hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9 - # via mkdocs + # via + # mkdocs + # mkdocs-macros-plugin paginate==0.5.6 \ --hash=sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d # via mkdocs-material @@ -443,86 +445,101 @@ pyyaml-env-tag==0.1 \ --hash=sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb \ --hash=sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069 # via mkdocs -regex==2024.7.24 \ - --hash=sha256:01b689e887f612610c869421241e075c02f2e3d1ae93a037cb14f88ab6a8934c \ - --hash=sha256:04ce29e2c5fedf296b1a1b0acc1724ba93a36fb14031f3abfb7abda2806c1535 \ - --hash=sha256:0ffe3f9d430cd37d8fa5632ff6fb36d5b24818c5c986893063b4e5bdb84cdf24 \ - --hash=sha256:18300a1d78cf1290fa583cd8b7cde26ecb73e9f5916690cf9d42de569c89b1ce \ - --hash=sha256:185e029368d6f89f36e526764cf12bf8d6f0e3a2a7737da625a76f594bdfcbfc \ - --hash=sha256:19c65b00d42804e3fbea9708f0937d157e53429a39b7c61253ff15670ff62cb5 \ - --hash=sha256:228b0d3f567fafa0633aee87f08b9276c7062da9616931382993c03808bb68ce \ - --hash=sha256:23acc72f0f4e1a9e6e9843d6328177ae3074b4182167e34119ec7233dfeccf53 \ - --hash=sha256:25419b70ba00a16abc90ee5fce061228206173231f004437730b67ac77323f0d \ - --hash=sha256:2dfbb8baf8ba2c2b9aa2807f44ed272f0913eeeba002478c4577b8d29cde215c \ - --hash=sha256:2f1baff13cc2521bea83ab2528e7a80cbe0ebb2c6f0bfad15be7da3aed443908 \ - --hash=sha256:33e2614a7ce627f0cdf2ad104797d1f68342d967de3695678c0cb84f530709f8 \ - --hash=sha256:3426de3b91d1bc73249042742f45c2148803c111d1175b283270177fdf669024 \ - --hash=sha256:382281306e3adaaa7b8b9ebbb3ffb43358a7bbf585fa93821300a418bb975281 \ - --hash=sha256:3d974d24edb231446f708c455fd08f94c41c1ff4f04bcf06e5f36df5ef50b95a \ - --hash=sha256:3f3b6ca8eae6d6c75a6cff525c8530c60e909a71a15e1b731723233331de4169 \ - --hash=sha256:3fac296f99283ac232d8125be932c5cd7644084a30748fda013028c815ba3364 \ - --hash=sha256:416c0e4f56308f34cdb18c3f59849479dde5b19febdcd6e6fa4d04b6c31c9faa \ - --hash=sha256:438d9f0f4bc64e8dea78274caa5af971ceff0f8771e1a2333620969936ba10be \ - --hash=sha256:43affe33137fcd679bdae93fb25924979517e011f9dea99163f80b82eadc7e53 \ - --hash=sha256:44fc61b99035fd9b3b9453f1713234e5a7c92a04f3577252b45feefe1b327759 \ - --hash=sha256:45104baae8b9f67569f0f1dca5e1f1ed77a54ae1cd8b0b07aba89272710db61e \ - --hash=sha256:4fdd1384619f406ad9037fe6b6eaa3de2749e2e12084abc80169e8e075377d3b \ - --hash=sha256:538d30cd96ed7d1416d3956f94d54e426a8daf7c14527f6e0d6d425fcb4cca52 \ - --hash=sha256:558a57cfc32adcf19d3f791f62b5ff564922942e389e3cfdb538a23d65a6b610 \ - --hash=sha256:5eefee9bfe23f6df09ffb6dfb23809f4d74a78acef004aa904dc7c88b9944b05 \ - --hash=sha256:64bd50cf16bcc54b274e20235bf8edbb64184a30e1e53873ff8d444e7ac656b2 \ - --hash=sha256:65fd3d2e228cae024c411c5ccdffae4c315271eee4a8b839291f84f796b34eca \ - --hash=sha256:66b4c0731a5c81921e938dcf1a88e978264e26e6ac4ec96a4d21ae0354581ae0 \ - --hash=sha256:68a8f8c046c6466ac61a36b65bb2395c74451df2ffb8458492ef49900efed293 \ - --hash=sha256:6a1141a1dcc32904c47f6846b040275c6e5de0bf73f17d7a409035d55b76f289 \ - --hash=sha256:6b9fc7e9cc983e75e2518496ba1afc524227c163e43d706688a6bb9eca41617e \ - --hash=sha256:6f51f9556785e5a203713f5efd9c085b4a45aecd2a42573e2b5041881b588d1f \ - --hash=sha256:7214477bf9bd195894cf24005b1e7b496f46833337b5dedb7b2a6e33f66d962c \ - --hash=sha256:731fcd76bbdbf225e2eb85b7c38da9633ad3073822f5ab32379381e8c3c12e94 \ - --hash=sha256:74007a5b25b7a678459f06559504f1eec2f0f17bca218c9d56f6a0a12bfffdad \ - --hash=sha256:7a5486ca56c8869070a966321d5ab416ff0f83f30e0e2da1ab48815c8d165d46 \ - --hash=sha256:7c479f5ae937ec9985ecaf42e2e10631551d909f203e31308c12d703922742f9 \ - --hash=sha256:7df9ea48641da022c2a3c9c641650cd09f0cd15e8908bf931ad538f5ca7919c9 \ - --hash=sha256:7e37e809b9303ec3a179085415cb5f418ecf65ec98cdfe34f6a078b46ef823ee \ - --hash=sha256:80c811cfcb5c331237d9bad3bea2c391114588cf4131707e84d9493064d267f9 \ - --hash=sha256:836d3cc225b3e8a943d0b02633fb2f28a66e281290302a79df0e1eaa984ff7c1 \ - --hash=sha256:84c312cdf839e8b579f504afcd7b65f35d60b6285d892b19adea16355e8343c9 \ - --hash=sha256:86b17ba823ea76256b1885652e3a141a99a5c4422f4a869189db328321b73799 \ - --hash=sha256:871e3ab2838fbcb4e0865a6e01233975df3a15e6fce93b6f99d75cacbd9862d1 \ - --hash=sha256:88ecc3afd7e776967fa16c80f974cb79399ee8dc6c96423321d6f7d4b881c92b \ - --hash=sha256:8bc593dcce679206b60a538c302d03c29b18e3d862609317cb560e18b66d10cf \ - --hash=sha256:8fd5afd101dcf86a270d254364e0e8dddedebe6bd1ab9d5f732f274fa00499a5 \ - --hash=sha256:945352286a541406f99b2655c973852da7911b3f4264e010218bbc1cc73168f2 \ - --hash=sha256:973335b1624859cb0e52f96062a28aa18f3a5fc77a96e4a3d6d76e29811a0e6e \ - --hash=sha256:994448ee01864501912abf2bad9203bffc34158e80fe8bfb5b031f4f8e16da51 \ - --hash=sha256:9cfd009eed1a46b27c14039ad5bbc5e71b6367c5b2e6d5f5da0ea91600817506 \ - --hash=sha256:a2ec4419a3fe6cf8a4795752596dfe0adb4aea40d3683a132bae9c30b81e8d73 \ - --hash=sha256:a4997716674d36a82eab3e86f8fa77080a5d8d96a389a61ea1d0e3a94a582cf7 \ - --hash=sha256:a512eed9dfd4117110b1881ba9a59b31433caed0c4101b361f768e7bcbaf93c5 \ - --hash=sha256:a82465ebbc9b1c5c50738536fdfa7cab639a261a99b469c9d4c7dcbb2b3f1e57 \ - --hash=sha256:ae2757ace61bc4061b69af19e4689fa4416e1a04840f33b441034202b5cd02d4 \ - --hash=sha256:b16582783f44fbca6fcf46f61347340c787d7530d88b4d590a397a47583f31dd \ - --hash=sha256:ba2537ef2163db9e6ccdbeb6f6424282ae4dea43177402152c67ef869cf3978b \ - --hash=sha256:bf7a89eef64b5455835f5ed30254ec19bf41f7541cd94f266ab7cbd463f00c41 \ - --hash=sha256:c0abb5e4e8ce71a61d9446040c1e86d4e6d23f9097275c5bd49ed978755ff0fe \ - --hash=sha256:c414cbda77dbf13c3bc88b073a1a9f375c7b0cb5e115e15d4b73ec3a2fbc6f59 \ - --hash=sha256:c51edc3541e11fbe83f0c4d9412ef6c79f664a3745fab261457e84465ec9d5a8 \ - --hash=sha256:c5e69fd3eb0b409432b537fe3c6f44ac089c458ab6b78dcec14478422879ec5f \ - --hash=sha256:c918b7a1e26b4ab40409820ddccc5d49871a82329640f5005f73572d5eaa9b5e \ - --hash=sha256:c9bb87fdf2ab2370f21e4d5636e5317775e5d51ff32ebff2cf389f71b9b13750 \ - --hash=sha256:ca5b2028c2f7af4e13fb9fc29b28d0ce767c38c7facdf64f6c2cd040413055f1 \ - --hash=sha256:d0a07763776188b4db4c9c7fb1b8c494049f84659bb387b71c73bbc07f189e96 \ - --hash=sha256:d33a0021893ede5969876052796165bab6006559ab845fd7b515a30abdd990dc \ - --hash=sha256:d55588cba7553f0b6ec33130bc3e114b355570b45785cebdc9daed8c637dd440 \ - --hash=sha256:dac8e84fff5d27420f3c1e879ce9929108e873667ec87e0c8eeb413a5311adfe \ - --hash=sha256:eaef80eac3b4cfbdd6de53c6e108b4c534c21ae055d1dbea2de6b3b8ff3def38 \ - --hash=sha256:eb462f0e346fcf41a901a126b50f8781e9a474d3927930f3490f38a6e73b6950 \ - --hash=sha256:eb563dd3aea54c797adf513eeec819c4213d7dbfc311874eb4fd28d10f2ff0f2 \ - --hash=sha256:f273674b445bcb6e4409bf8d1be67bc4b58e8b46fd0d560055d515b8830063cd \ - --hash=sha256:f6442f0f0ff81775eaa5b05af8a0ffa1dda36e9cf6ec1e0d3d245e8564b684ce \ - --hash=sha256:fb168b5924bef397b5ba13aabd8cf5df7d3d93f10218d7b925e360d436863f66 \ - --hash=sha256:fbf8c2f00904eaf63ff37718eb13acf8e178cb940520e47b2f05027f5bb34ce3 \ - --hash=sha256:fe4ebef608553aff8deb845c7f4f1d0740ff76fa672c011cc0bacb2a00fbde86 +regex==2024.9.11 \ + --hash=sha256:01c2acb51f8a7d6494c8c5eafe3d8e06d76563d8a8a4643b37e9b2dd8a2ff623 \ + --hash=sha256:02087ea0a03b4af1ed6ebab2c54d7118127fee8d71b26398e8e4b05b78963199 \ + --hash=sha256:040562757795eeea356394a7fb13076ad4f99d3c62ab0f8bdfb21f99a1f85664 \ + --hash=sha256:042c55879cfeb21a8adacc84ea347721d3d83a159da6acdf1116859e2427c43f \ + --hash=sha256:079400a8269544b955ffa9e31f186f01d96829110a3bf79dc338e9910f794fca \ + --hash=sha256:07f45f287469039ffc2c53caf6803cd506eb5f5f637f1d4acb37a738f71dd066 \ + --hash=sha256:09d77559e80dcc9d24570da3745ab859a9cf91953062e4ab126ba9d5993688ca \ + --hash=sha256:0cbff728659ce4bbf4c30b2a1be040faafaa9eca6ecde40aaff86f7889f4ab39 \ + --hash=sha256:0e12c481ad92d129c78f13a2a3662317e46ee7ef96c94fd332e1c29131875b7d \ + --hash=sha256:0ea51dcc0835eea2ea31d66456210a4e01a076d820e9039b04ae8d17ac11dee6 \ + --hash=sha256:0ffbcf9221e04502fc35e54d1ce9567541979c3fdfb93d2c554f0ca583a19b35 \ + --hash=sha256:1494fa8725c285a81d01dc8c06b55287a1ee5e0e382d8413adc0a9197aac6408 \ + --hash=sha256:16e13a7929791ac1216afde26f712802e3df7bf0360b32e4914dca3ab8baeea5 \ + --hash=sha256:18406efb2f5a0e57e3a5881cd9354c1512d3bb4f5c45d96d110a66114d84d23a \ + --hash=sha256:18e707ce6c92d7282dfce370cd205098384b8ee21544e7cb29b8aab955b66fa9 \ + --hash=sha256:220e92a30b426daf23bb67a7962900ed4613589bab80382be09b48896d211e92 \ + --hash=sha256:23b30c62d0f16827f2ae9f2bb87619bc4fba2044911e2e6c2eb1af0161cdb766 \ + --hash=sha256:23f9985c8784e544d53fc2930fc1ac1a7319f5d5332d228437acc9f418f2f168 \ + --hash=sha256:297f54910247508e6e5cae669f2bc308985c60540a4edd1c77203ef19bfa63ca \ + --hash=sha256:2b08fce89fbd45664d3df6ad93e554b6c16933ffa9d55cb7e01182baaf971508 \ + --hash=sha256:2cce2449e5927a0bf084d346da6cd5eb016b2beca10d0013ab50e3c226ffc0df \ + --hash=sha256:313ea15e5ff2a8cbbad96ccef6be638393041b0a7863183c2d31e0c6116688cf \ + --hash=sha256:323c1f04be6b2968944d730e5c2091c8c89767903ecaa135203eec4565ed2b2b \ + --hash=sha256:35f4a6f96aa6cb3f2f7247027b07b15a374f0d5b912c0001418d1d55024d5cb4 \ + --hash=sha256:3b37fa423beefa44919e009745ccbf353d8c981516e807995b2bd11c2c77d268 \ + --hash=sha256:3ce4f1185db3fbde8ed8aa223fc9620f276c58de8b0d4f8cc86fd1360829edb6 \ + --hash=sha256:46989629904bad940bbec2106528140a218b4a36bb3042d8406980be1941429c \ + --hash=sha256:4838e24ee015101d9f901988001038f7f0d90dc0c3b115541a1365fb439add62 \ + --hash=sha256:49b0e06786ea663f933f3710a51e9385ce0cba0ea56b67107fd841a55d56a231 \ + --hash=sha256:4db21ece84dfeefc5d8a3863f101995de646c6cb0536952c321a2650aa202c36 \ + --hash=sha256:54c4a097b8bc5bb0dfc83ae498061d53ad7b5762e00f4adaa23bee22b012e6ba \ + --hash=sha256:54d9ff35d4515debf14bc27f1e3b38bfc453eff3220f5bce159642fa762fe5d4 \ + --hash=sha256:55b96e7ce3a69a8449a66984c268062fbaa0d8ae437b285428e12797baefce7e \ + --hash=sha256:57fdd2e0b2694ce6fc2e5ccf189789c3e2962916fb38779d3e3521ff8fe7a822 \ + --hash=sha256:587d4af3979376652010e400accc30404e6c16b7df574048ab1f581af82065e4 \ + --hash=sha256:5b513b6997a0b2f10e4fd3a1313568e373926e8c252bd76c960f96fd039cd28d \ + --hash=sha256:5ddcd9a179c0a6fa8add279a4444015acddcd7f232a49071ae57fa6e278f1f71 \ + --hash=sha256:6113c008a7780792efc80f9dfe10ba0cd043cbf8dc9a76ef757850f51b4edc50 \ + --hash=sha256:635a1d96665f84b292e401c3d62775851aedc31d4f8784117b3c68c4fcd4118d \ + --hash=sha256:64ce2799bd75039b480cc0360907c4fb2f50022f030bf9e7a8705b636e408fad \ + --hash=sha256:69dee6a020693d12a3cf892aba4808fe168d2a4cef368eb9bf74f5398bfd4ee8 \ + --hash=sha256:6a2644a93da36c784e546de579ec1806bfd2763ef47babc1b03d765fe560c9f8 \ + --hash=sha256:6b41e1adc61fa347662b09398e31ad446afadff932a24807d3ceb955ed865cc8 \ + --hash=sha256:6c188c307e8433bcb63dc1915022deb553b4203a70722fc542c363bf120a01fd \ + --hash=sha256:6edd623bae6a737f10ce853ea076f56f507fd7726bee96a41ee3d68d347e4d16 \ + --hash=sha256:73d6d2f64f4d894c96626a75578b0bf7d9e56dcda8c3d037a2118fdfe9b1c664 \ + --hash=sha256:7a22ccefd4db3f12b526eccb129390942fe874a3a9fdbdd24cf55773a1faab1a \ + --hash=sha256:7fb89ee5d106e4a7a51bce305ac4efb981536301895f7bdcf93ec92ae0d91c7f \ + --hash=sha256:846bc79ee753acf93aef4184c040d709940c9d001029ceb7b7a52747b80ed2dd \ + --hash=sha256:85ab7824093d8f10d44330fe1e6493f756f252d145323dd17ab6b48733ff6c0a \ + --hash=sha256:8dee5b4810a89447151999428fe096977346cf2f29f4d5e29609d2e19e0199c9 \ + --hash=sha256:8e5fb5f77c8745a60105403a774fe2c1759b71d3e7b4ca237a5e67ad066c7199 \ + --hash=sha256:98eeee2f2e63edae2181c886d7911ce502e1292794f4c5ee71e60e23e8d26b5d \ + --hash=sha256:9d4a76b96f398697fe01117093613166e6aa8195d63f1b4ec3f21ab637632963 \ + --hash=sha256:9e8719792ca63c6b8340380352c24dcb8cd7ec49dae36e963742a275dfae6009 \ + --hash=sha256:a0b2b80321c2ed3fcf0385ec9e51a12253c50f146fddb2abbb10f033fe3d049a \ + --hash=sha256:a4cc92bb6db56ab0c1cbd17294e14f5e9224f0cc6521167ef388332604e92679 \ + --hash=sha256:a738b937d512b30bf75995c0159c0ddf9eec0775c9d72ac0202076c72f24aa96 \ + --hash=sha256:a8f877c89719d759e52783f7fe6e1c67121076b87b40542966c02de5503ace42 \ + --hash=sha256:a906ed5e47a0ce5f04b2c981af1c9acf9e8696066900bf03b9d7879a6f679fc8 \ + --hash=sha256:ae2941333154baff9838e88aa71c1d84f4438189ecc6021a12c7573728b5838e \ + --hash=sha256:b0d0a6c64fcc4ef9c69bd5b3b3626cc3776520a1637d8abaa62b9edc147a58f7 \ + --hash=sha256:b5b029322e6e7b94fff16cd120ab35a253236a5f99a79fb04fda7ae71ca20ae8 \ + --hash=sha256:b7aaa315101c6567a9a45d2839322c51c8d6e81f67683d529512f5bcfb99c802 \ + --hash=sha256:be1c8ed48c4c4065ecb19d882a0ce1afe0745dfad8ce48c49586b90a55f02366 \ + --hash=sha256:c0256beda696edcf7d97ef16b2a33a8e5a875affd6fa6567b54f7c577b30a137 \ + --hash=sha256:c157bb447303070f256e084668b702073db99bbb61d44f85d811025fcf38f784 \ + --hash=sha256:c57d08ad67aba97af57a7263c2d9006d5c404d721c5f7542f077f109ec2a4a29 \ + --hash=sha256:c69ada171c2d0e97a4b5aa78fbb835e0ffbb6b13fc5da968c09811346564f0d3 \ + --hash=sha256:c94bb0a9f1db10a1d16c00880bdebd5f9faf267273b8f5bd1878126e0fbde771 \ + --hash=sha256:cb130fccd1a37ed894824b8c046321540263013da72745d755f2d35114b81a60 \ + --hash=sha256:ced479f601cd2f8ca1fd7b23925a7e0ad512a56d6e9476f79b8f381d9d37090a \ + --hash=sha256:d05ac6fa06959c4172eccd99a222e1fbf17b5670c4d596cb1e5cde99600674c4 \ + --hash=sha256:d552c78411f60b1fdaafd117a1fca2f02e562e309223b9d44b7de8be451ec5e0 \ + --hash=sha256:dd4490a33eb909ef5078ab20f5f000087afa2a4daa27b4c072ccb3cb3050ad84 \ + --hash=sha256:df5cbb1fbc74a8305b6065d4ade43b993be03dbe0f8b30032cced0d7740994bd \ + --hash=sha256:e28f9faeb14b6f23ac55bfbbfd3643f5c7c18ede093977f1df249f73fd22c7b1 \ + --hash=sha256:e464b467f1588e2c42d26814231edecbcfe77f5ac414d92cbf4e7b55b2c2a776 \ + --hash=sha256:e4c22e1ac1f1ec1e09f72e6c44d8f2244173db7eb9629cc3a346a8d7ccc31142 \ + --hash=sha256:e53b5fbab5d675aec9f0c501274c467c0f9a5d23696cfc94247e1fb56501ed89 \ + --hash=sha256:e93f1c331ca8e86fe877a48ad64e77882c0c4da0097f2212873a69bbfea95d0c \ + --hash=sha256:e997fd30430c57138adc06bba4c7c2968fb13d101e57dd5bb9355bf8ce3fa7e8 \ + --hash=sha256:e9a091b0550b3b0207784a7d6d0f1a00d1d1c8a11699c1a4d93db3fbefc3ad35 \ + --hash=sha256:eab4bb380f15e189d1313195b062a6aa908f5bd687a0ceccd47c8211e9cf0d4a \ + --hash=sha256:eb1ae19e64c14c7ec1995f40bd932448713d3c73509e82d8cd7744dc00e29e86 \ + --hash=sha256:ecea58b43a67b1b79805f1a0255730edaf5191ecef84dbc4cc85eb30bc8b63b9 \ + --hash=sha256:ee439691d8c23e76f9802c42a95cfeebf9d47cf4ffd06f18489122dbb0a7ad64 \ + --hash=sha256:eee9130eaad130649fd73e5cd92f60e55708952260ede70da64de420cdcad554 \ + --hash=sha256:f47cd43a5bfa48f86925fe26fbdd0a488ff15b62468abb5d2a1e092a4fb10e85 \ + --hash=sha256:f6fff13ef6b5f29221d6904aa816c34701462956aa72a77f1f151a8ec4f56aeb \ + --hash=sha256:f745ec09bc1b0bd15cfc73df6fa4f726dcc26bb16c23a03f9e3367d357eeedd0 \ + --hash=sha256:f8404bf61298bb6f8224bb9176c1424548ee1181130818fcd2cbffddc768bed8 \ + --hash=sha256:f9268774428ec173654985ce55fc6caf4c6d11ade0f6f914d48ef4719eb05ebb \ + --hash=sha256:faa3c142464efec496967359ca99696c896c591c56c53506bac1ad465f66e919 # via mkdocs-material requests==2.32.3 \ --hash=sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760 \ @@ -595,7 +612,7 @@ wcmatch==8.5.2 \ --hash=sha256:17d3ad3758f9d0b5b4dedc770b65420d4dac62e680229c287bf24c9db856a478 \ --hash=sha256:a70222b86dea82fb382dd87b73278c10756c138bd6f8f714e2183128887b9eb2 # via mkdocs-include-markdown-plugin -zipp==3.20.1 \ - --hash=sha256:9960cd8967c8f85a56f920d5d507274e74f9ff813a0ab8889a5b5be2daf44064 \ - --hash=sha256:c22b14cc4763c5a5b04134207736c107db42e9d3ef2d9779d465f5f1bcba572b +zipp==3.20.2 \ + --hash=sha256:a817ac80d6cf4b23bf7f2828b7cabf326f15a001bea8b1f9b49631780ba28350 \ + --hash=sha256:bc9eb26f4506fda01b81bcde0ca78103b6e62f991b381fec825435c836edbc29 # via importlib-metadata diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index eca68cac40..751cd4d0ee 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,13 +1,25 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 253 +INVENTREE_API_VERSION = 257 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v257 - 2024-09-22 : https://github.com/inventree/InvenTree/pull/8150 + - Adds API endpoint for reporting barcode scan history + +v256 - 2024-09-19 : https://github.com/inventree/InvenTree/pull/7704 + - Adjustments for "stocktake" (stock history) API endpoints + +v255 - 2024-09-19 : https://github.com/inventree/InvenTree/pull/8145 + - Enables copying line items when duplicating an order + +v254 - 2024-09-14 : https://github.com/inventree/InvenTree/pull/7470 + - Implements new API endpoints for enabling custom UI functionality via plugins + v253 - 2024-09-14 : https://github.com/inventree/InvenTree/pull/7944 - Adjustments for user API endpoints diff --git a/src/backend/InvenTree/InvenTree/locales.py b/src/backend/InvenTree/InvenTree/locales.py index 62e3a8bd9d..f68b0ae148 100644 --- a/src/backend/InvenTree/InvenTree/locales.py +++ b/src/backend/InvenTree/InvenTree/locales.py @@ -10,6 +10,8 @@ Additionally, update the following files with the new locale code: - /src/frontend/.linguirc file - /src/frontend/src/contexts/LanguageContext.tsx + +(and then run "invoke int.frontend-trans") """ from django.utils.translation import gettext_lazy as _ @@ -34,6 +36,7 @@ LOCALES = [ ('it', _('Italian')), ('ja', _('Japanese')), ('ko', _('Korean')), + ('lt', _('Lithuanian')), ('lv', _('Latvian')), ('nl', _('Dutch')), ('no', _('Norwegian')), diff --git a/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py b/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py index 77b00f73b5..ce7df416fc 100644 --- a/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py +++ b/src/backend/InvenTree/InvenTree/management/commands/collectplugins.py @@ -8,6 +8,7 @@ class Command(BaseCommand): def handle(self, *args, **kwargs): """Run the management command.""" - from plugin.staticfiles import collect_plugins_static_files + import plugin.staticfiles - collect_plugins_static_files() + plugin.staticfiles.collect_plugins_static_files() + plugin.staticfiles.clear_plugins_static_files() diff --git a/src/backend/InvenTree/InvenTree/mixins.py b/src/backend/InvenTree/InvenTree/mixins.py index b7233616e5..0550986b09 100644 --- a/src/backend/InvenTree/InvenTree/mixins.py +++ b/src/backend/InvenTree/InvenTree/mixins.py @@ -180,5 +180,9 @@ class RetrieveUpdateDestroyAPI(CleanMixin, generics.RetrieveUpdateDestroyAPIView """View for retrieve, update and destroy API.""" +class RetrieveDestroyAPI(generics.RetrieveDestroyAPIView): + """View for retrieve and destroy API.""" + + class UpdateAPI(CleanMixin, generics.UpdateAPIView): """View for update API.""" diff --git a/src/backend/InvenTree/InvenTree/models.py b/src/backend/InvenTree/InvenTree/models.py index c57a0ccbcb..2d2b558b4e 100644 --- a/src/backend/InvenTree/InvenTree/models.py +++ b/src/backend/InvenTree/InvenTree/models.py @@ -439,7 +439,7 @@ class ReferenceIndexingMixin(models.Model): ) # Check that the reference field can be rebuild - cls.rebuild_reference_field(value, validate=True) + return cls.rebuild_reference_field(value, validate=True) @classmethod def rebuild_reference_field(cls, reference, validate=False): diff --git a/src/backend/InvenTree/InvenTree/settings.py b/src/backend/InvenTree/InvenTree/settings.py index 8529397770..6612e25e05 100644 --- a/src/backend/InvenTree/InvenTree/settings.py +++ b/src/backend/InvenTree/InvenTree/settings.py @@ -133,6 +133,34 @@ STATIC_URL = '/static/' # Web URL endpoint for served media files MEDIA_URL = '/media/' +# Are plugins enabled? +PLUGINS_ENABLED = get_boolean_setting( + 'INVENTREE_PLUGINS_ENABLED', 'plugins_enabled', False +) + +PLUGINS_INSTALL_DISABLED = get_boolean_setting( + 'INVENTREE_PLUGIN_NOINSTALL', 'plugin_noinstall', False +) + +PLUGIN_FILE = config.get_plugin_file() + +# Plugin test settings +PLUGIN_TESTING = get_setting( + 'INVENTREE_PLUGIN_TESTING', 'PLUGIN_TESTING', TESTING +) # Are plugins being tested? + +PLUGIN_TESTING_SETUP = get_setting( + 'INVENTREE_PLUGIN_TESTING_SETUP', 'PLUGIN_TESTING_SETUP', False +) # Load plugins from setup hooks in testing? + +PLUGIN_TESTING_EVENTS = False # Flag if events are tested right now + +PLUGIN_RETRY = get_setting( + 'INVENTREE_PLUGIN_RETRY', 'PLUGIN_RETRY', 3, typecast=int +) # How often should plugin loading be tried? + +PLUGIN_FILE_CHECKED = False # Was the plugin file checked? + STATICFILES_DIRS = [] # Translated Template settings @@ -153,6 +181,12 @@ if DEBUG and 'collectstatic' not in sys.argv: if web_dir.exists(): STATICFILES_DIRS.append(web_dir) + # Append directory for sample plugin static content (if in debug mode) + if PLUGINS_ENABLED: + print('Adding plugin sample static content') + STATICFILES_DIRS.append(BASE_DIR.joinpath('plugin', 'samples', 'static')) + + print('-', STATICFILES_DIRS[-1]) STATFILES_I18_PROCESSORS = ['InvenTree.context.status_codes'] # Color Themes Directory @@ -169,10 +203,11 @@ DBBACKUP_STORAGE = get_setting( # Default backup configuration DBBACKUP_STORAGE_OPTIONS = get_setting( - 'INVENTREE_BACKUP_OPTIONS', 'backup_options', None + 'INVENTREE_BACKUP_OPTIONS', + 'backup_options', + default_value={'location': config.get_backup_dir()}, + typecast=dict, ) -if DBBACKUP_STORAGE_OPTIONS is None: - DBBACKUP_STORAGE_OPTIONS = {'location': config.get_backup_dir()} INVENTREE_ADMIN_ENABLED = get_boolean_setting( 'INVENTREE_ADMIN_ENABLED', config_key='admin_enabled', default_value=True @@ -555,6 +590,9 @@ for key in db_keys: # Check that required database configuration options are specified required_keys = ['ENGINE', 'NAME'] +# Ensure all database keys are upper case +db_config = {key.upper(): value for key, value in db_config.items()} + for key in required_keys: if key not in db_config: # pragma: no cover error_msg = f'Missing required database configuration value {key}' @@ -1254,29 +1292,6 @@ IGNORED_ERRORS = [Http404, django.core.exceptions.PermissionDenied] MAINTENANCE_MODE_RETRY_AFTER = 10 MAINTENANCE_MODE_STATE_BACKEND = 'InvenTree.backends.InvenTreeMaintenanceModeBackend' -# Are plugins enabled? -PLUGINS_ENABLED = get_boolean_setting( - 'INVENTREE_PLUGINS_ENABLED', 'plugins_enabled', False -) -PLUGINS_INSTALL_DISABLED = get_boolean_setting( - 'INVENTREE_PLUGIN_NOINSTALL', 'plugin_noinstall', False -) - -PLUGIN_FILE = config.get_plugin_file() - -# Plugin test settings -PLUGIN_TESTING = get_setting( - 'INVENTREE_PLUGIN_TESTING', 'PLUGIN_TESTING', TESTING -) # Are plugins being tested? -PLUGIN_TESTING_SETUP = get_setting( - 'INVENTREE_PLUGIN_TESTING_SETUP', 'PLUGIN_TESTING_SETUP', False -) # Load plugins from setup hooks in testing? -PLUGIN_TESTING_EVENTS = False # Flag if events are tested right now -PLUGIN_RETRY = get_setting( - 'INVENTREE_PLUGIN_RETRY', 'PLUGIN_RETRY', 3, typecast=int -) # How often should plugin loading be tried? -PLUGIN_FILE_CHECKED = False # Was the plugin file checked? - # Flag to allow table events during testing TESTING_TABLE_EVENTS = False diff --git a/src/backend/InvenTree/InvenTree/unit_test.py b/src/backend/InvenTree/InvenTree/unit_test.py index 100b450019..c6409fd6c8 100644 --- a/src/backend/InvenTree/InvenTree/unit_test.py +++ b/src/backend/InvenTree/InvenTree/unit_test.py @@ -291,6 +291,18 @@ class InvenTreeAPITestCase(ExchangeRateMixin, UserMixin, APITestCase): self.assertLess(n, value, msg=msg) + @classmethod + def setUpTestData(cls): + """Setup for API tests. + + - Ensure that all global settings are assigned default values. + """ + from common.models import InvenTreeSetting + + InvenTreeSetting.build_default_values() + + super().setUpTestData() + def check_response(self, url, response, expected_code=None): """Debug output for an unexpected response.""" # Check that the response returned the expected status code diff --git a/src/backend/InvenTree/InvenTree/urls.py b/src/backend/InvenTree/InvenTree/urls.py index 03712320e1..7f6d6c6b37 100644 --- a/src/backend/InvenTree/InvenTree/urls.py +++ b/src/backend/InvenTree/InvenTree/urls.py @@ -484,7 +484,7 @@ if settings.ENABLE_PLATFORM_FRONTEND: urlpatterns += frontendpatterns -# Append custom plugin URLs (if plugin support is enabled) +# Append custom plugin URLs (if custom plugin support is enabled) if settings.PLUGINS_ENABLED: urlpatterns.append(get_plugin_urls()) diff --git a/src/backend/InvenTree/build/filters.py b/src/backend/InvenTree/build/filters.py new file mode 100644 index 0000000000..ff3c02a523 --- /dev/null +++ b/src/backend/InvenTree/build/filters.py @@ -0,0 +1,25 @@ +"""Queryset filtering helper functions for the Build app.""" + + +from django.db import models +from django.db.models import Sum, Q +from django.db.models.functions import Coalesce + + +def annotate_allocated_quantity(queryset: Q) -> Q: + """ + Annotate the 'allocated' quantity for each build item in the queryset. + + Arguments: + queryset: The BuildLine queryset to annotate + + """ + + queryset = queryset.prefetch_related('allocations') + + return queryset.annotate( + allocated=Coalesce( + Sum('allocations__quantity'), 0, + output_field=models.DecimalField() + ) + ) diff --git a/src/backend/InvenTree/build/models.py b/src/backend/InvenTree/build/models.py index 899145f98d..9b13dbf1ed 100644 --- a/src/backend/InvenTree/build/models.py +++ b/src/backend/InvenTree/build/models.py @@ -9,7 +9,7 @@ from django.contrib.auth.models import User from django.core.exceptions import ValidationError from django.core.validators import MinValueValidator from django.db import models, transaction -from django.db.models import Sum, Q +from django.db.models import F, Sum, Q from django.db.models.functions import Coalesce from django.db.models.signals import post_save from django.dispatch.dispatcher import receiver @@ -24,6 +24,7 @@ from rest_framework import serializers from build.status_codes import BuildStatus, BuildStatusGroups from stock.status_codes import StockStatus, StockHistoryCode +from build.filters import annotate_allocated_quantity from build.validators import generate_next_build_reference, validate_build_order_reference from generic.states import StateTransitionMixin @@ -124,8 +125,7 @@ class Build( def save(self, *args, **kwargs): """Custom save method for the BuildOrder model""" - self.validate_reference_field(self.reference) - self.reference_int = self.rebuild_reference_field(self.reference) + self.reference_int = self.validate_reference_field(self.reference) # Check part when initially creating the build order if not self.pk or self.has_field_changed('part'): @@ -987,12 +987,13 @@ class Build( items_to_save = [] items_to_delete = [] - lines = self.untracked_line_items - lines = lines.prefetch_related('allocations') + lines = self.untracked_line_items.all() + lines = lines.exclude(bom_item__consumable=True) + lines = annotate_allocated_quantity(lines) for build_line in lines: - reduce_by = build_line.allocated_quantity() - build_line.quantity + reduce_by = build_line.allocated - build_line.quantity if reduce_by <= 0: continue @@ -1290,18 +1291,20 @@ class Build( """Returns a list of BuildLine objects which have not been fully allocated.""" lines = self.build_lines.all() + # Remove any 'consumable' line items + lines = lines.exclude(bom_item__consumable=True) + if tracked is True: lines = lines.filter(bom_item__sub_part__trackable=True) elif tracked is False: lines = lines.filter(bom_item__sub_part__trackable=False) - unallocated_lines = [] + lines = annotate_allocated_quantity(lines) - for line in lines: - if not line.is_fully_allocated(): - unallocated_lines.append(line) + # Filter out any lines which have been fully allocated + lines = lines.filter(allocated__lt=F('quantity')) - return unallocated_lines + return lines def is_fully_allocated(self, tracked=None): """Test if the BuildOrder has been fully allocated. @@ -1314,19 +1317,24 @@ class Build( Returns: True if the BuildOrder has been fully allocated, otherwise False """ - lines = self.unallocated_lines(tracked=tracked) - return len(lines) == 0 + + return self.unallocated_lines(tracked=tracked).count() == 0 def is_output_fully_allocated(self, output): """Determine if the specified output (StockItem) has been fully allocated for this build Args: - output: StockItem object + output: StockItem object (the "in production" output to test against) To determine if the output has been fully allocated, we need to test all "trackable" BuildLine objects """ - for line in self.build_lines.filter(bom_item__sub_part__trackable=True): + + lines = self.build_lines.filter(bom_item__sub_part__trackable=True) + lines = lines.exclude(bom_item__consumable=True) + + # Find any lines which have not been fully allocated + for line in lines: # Grab all BuildItem objects which point to this output allocations = BuildItem.objects.filter( build_line=line, @@ -1350,11 +1358,14 @@ class Build( Returns: True if any BuildLine has been over-allocated. """ - for line in self.build_lines.all(): - if line.is_overallocated(): - return True - return False + lines = self.build_lines.all().exclude(bom_item__consumable=True) + lines = annotate_allocated_quantity(lines) + + # Find any lines which have been over-allocated + lines = lines.filter(allocated__gt=F('quantity')) + + return lines.count() > 0 @property def is_active(self): @@ -1692,6 +1703,9 @@ class BuildItem(InvenTree.models.InvenTreeMetadataModel): - If the referenced part is trackable, the stock item will be *installed* into the build output - If the referenced part is *not* trackable, the stock item will be *consumed* by the build order + + TODO: This is quite expensive (in terms of number of database hits) - and requires some thought + """ item = self.stock_item diff --git a/src/backend/InvenTree/common/admin.py b/src/backend/InvenTree/common/admin.py index a0719f9ab4..a2b02522db 100644 --- a/src/backend/InvenTree/common/admin.py +++ b/src/backend/InvenTree/common/admin.py @@ -35,6 +35,15 @@ class AttachmentAdmin(admin.ModelAdmin): search_fields = ('content_type', 'comment') +@admin.register(common.models.BarcodeScanResult) +class BarcodeScanResultAdmin(admin.ModelAdmin): + """Admin interface for BarcodeScanResult objects.""" + + list_display = ('data', 'timestamp', 'user', 'endpoint', 'result') + + list_filter = ('user', 'endpoint', 'result') + + @admin.register(common.models.ProjectCode) class ProjectCodeAdmin(ImportExportModelAdmin): """Admin settings for ProjectCode.""" diff --git a/src/backend/InvenTree/common/migrations/0030_barcodescanresult.py b/src/backend/InvenTree/common/migrations/0030_barcodescanresult.py new file mode 100644 index 0000000000..fe9ed14c6e --- /dev/null +++ b/src/backend/InvenTree/common/migrations/0030_barcodescanresult.py @@ -0,0 +1,34 @@ +# Generated by Django 4.2.15 on 2024-09-21 06:05 + +import InvenTree.models +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('common', '0029_inventreecustomuserstatemodel'), + ] + + operations = [ + migrations.CreateModel( + name='BarcodeScanResult', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('data', models.CharField(help_text='Barcode data', max_length=250, verbose_name='Data')), + ('timestamp', models.DateTimeField(auto_now_add=True, help_text='Date and time of the barcode scan', verbose_name='Timestamp')), + ('endpoint', models.CharField(blank=True, help_text='URL endpoint which processed the barcode', max_length=250, null=True, verbose_name='Path')), + ('context', models.JSONField(blank=True, help_text='Context data for the barcode scan', max_length=1000, null=True, verbose_name='Context')), + ('response', models.JSONField(blank=True, help_text='Response data from the barcode scan', max_length=1000, null=True, verbose_name='Response')), + ('result', models.BooleanField(default=False, help_text='Was the barcode scan successful?', verbose_name='Result')), + ('user', models.ForeignKey(blank=True, help_text='User who scanned the barcode', null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='User')), + ], + options={ + 'verbose_name': 'Barcode Scan', + }, + bases=(InvenTree.models.PluginValidationMixin, models.Model), + ), + ] diff --git a/src/backend/InvenTree/common/models.py b/src/backend/InvenTree/common/models.py index 2b8dc5aca3..ac76343f39 100644 --- a/src/backend/InvenTree/common/models.py +++ b/src/backend/InvenTree/common/models.py @@ -43,6 +43,7 @@ from taggit.managers import TaggableManager import build.validators import common.currency import common.validators +import InvenTree.exceptions import InvenTree.fields import InvenTree.helpers import InvenTree.models @@ -1398,6 +1399,18 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'default': True, 'validator': bool, }, + 'BARCODE_STORE_RESULTS': { + 'name': _('Store Barcode Results'), + 'description': _('Store barcode scan results in the database'), + 'default': False, + 'validator': bool, + }, + 'BARCODE_RESULTS_MAX_NUM': { + 'name': _('Barcode Scans Maximum Count'), + 'description': _('Maximum number of barcode scan results to store'), + 'default': 100, + 'validator': [int, MinValueValidator(1)], + }, 'BARCODE_INPUT_DELAY': { 'name': _('Barcode Input Delay'), 'description': _('Barcode input processing delay time'), @@ -2095,6 +2108,13 @@ class InvenTreeSetting(BaseInvenTreeSetting): 'validator': bool, 'after_save': reload_plugin_registry, }, + 'ENABLE_PLUGINS_INTERFACE': { + 'name': _('Enable interface integration'), + 'description': _('Enable plugins to integrate into the user interface'), + 'default': False, + 'validator': bool, + 'after_save': reload_plugin_registry, + }, 'PROJECT_CODES_ENABLED': { 'name': _('Enable project codes'), 'description': _('Enable project codes for tracking projects'), @@ -3438,3 +3458,67 @@ class InvenTreeCustomUserStateModel(models.Model): }) return super().clean() + + +class BarcodeScanResult(InvenTree.models.InvenTreeModel): + """Model for storing barcode scans results.""" + + BARCODE_SCAN_MAX_LEN = 250 + + class Meta: + """Model meta options.""" + + verbose_name = _('Barcode Scan') + + data = models.CharField( + max_length=BARCODE_SCAN_MAX_LEN, + verbose_name=_('Data'), + help_text=_('Barcode data'), + blank=False, + null=False, + ) + + user = models.ForeignKey( + User, + on_delete=models.SET_NULL, + blank=True, + null=True, + verbose_name=_('User'), + help_text=_('User who scanned the barcode'), + ) + + timestamp = models.DateTimeField( + auto_now_add=True, + verbose_name=_('Timestamp'), + help_text=_('Date and time of the barcode scan'), + ) + + endpoint = models.CharField( + max_length=250, + verbose_name=_('Path'), + help_text=_('URL endpoint which processed the barcode'), + blank=True, + null=True, + ) + + context = models.JSONField( + max_length=1000, + verbose_name=_('Context'), + help_text=_('Context data for the barcode scan'), + blank=True, + null=True, + ) + + response = models.JSONField( + max_length=1000, + verbose_name=_('Response'), + help_text=_('Response data from the barcode scan'), + blank=True, + null=True, + ) + + result = models.BooleanField( + verbose_name=_('Result'), + help_text=_('Was the barcode scan successful?'), + default=False, + ) diff --git a/src/backend/InvenTree/company/api.py b/src/backend/InvenTree/company/api.py index b0b9fcfe98..5765b11b85 100644 --- a/src/backend/InvenTree/company/api.py +++ b/src/backend/InvenTree/company/api.py @@ -436,6 +436,13 @@ class SupplierPriceBreakList(ListCreateAPI): serializer_class = SupplierPriceBreakSerializer filterset_class = SupplierPriceBreakFilter + def get_queryset(self): + """Return annotated queryset for the SupplierPriceBreak list endpoint.""" + queryset = super().get_queryset() + queryset = SupplierPriceBreakSerializer.annotate_queryset(queryset) + + return queryset + def get_serializer(self, *args, **kwargs): """Return serializer instance for this endpoint.""" try: @@ -468,6 +475,13 @@ class SupplierPriceBreakDetail(RetrieveUpdateDestroyAPI): queryset = SupplierPriceBreak.objects.all() serializer_class = SupplierPriceBreakSerializer + def get_queryset(self): + """Return annotated queryset for the SupplierPriceBreak list endpoint.""" + queryset = super().get_queryset() + queryset = SupplierPriceBreakSerializer.annotate_queryset(queryset) + + return queryset + manufacturer_part_api_urls = [ path( diff --git a/src/backend/InvenTree/company/serializers.py b/src/backend/InvenTree/company/serializers.py index ba6d845c0a..da763f8d7b 100644 --- a/src/backend/InvenTree/company/serializers.py +++ b/src/backend/InvenTree/company/serializers.py @@ -512,6 +512,13 @@ class SupplierPriceBreakSerializer( if not part_detail: self.fields.pop('part_detail', None) + @staticmethod + def annotate_queryset(queryset): + """Prefetch related fields for the queryset.""" + queryset = queryset.select_related('part', 'part__supplier', 'part__part') + + return queryset + quantity = InvenTreeDecimalField() price = InvenTreeMoneySerializer(allow_null=True, required=True, label=_('Price')) diff --git a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po index dd18d3fe69..d5cc08bff1 100644 --- a/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ar/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Language: ar_SA\n" @@ -65,9 +65,9 @@ msgstr "أدخل التاريخ" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "العربيّة" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po index dec5cbfaeb..4a69f540cc 100644 --- a/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/bg/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -65,9 +65,9 @@ msgstr "Въведи дата" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Отдалеченият сървър върна празен отгов msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Хинди" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Унгарски" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Италиански" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Японски" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Корейски" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Нидерландски" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Норвежки" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Полски" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Португалски" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Португалски (Бразилия)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Руски" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Словенски" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Шведски" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Тайландски" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Турски" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Виетнамски" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Китайски (опростен)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Китайски (традиционен)" @@ -364,7 +368,7 @@ msgstr "Китайски (традиционен)" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Потребител" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Цялостна наличност" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po index 2f0ee4e7b9..d59addb546 100644 --- a/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/cs/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -65,9 +65,9 @@ msgstr "Zadejte datum" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Vzdálený server vrátil prázdnou odpověď" msgid "Supplied URL is not a valid image file" msgstr "Zadaná URL adresa není platný soubor obrázku" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulharština" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Čeština" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dánština" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Němčina" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Řečtina" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angličtina" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Španělština" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Španělština (Mexiko)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Perština" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finština" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francouzština" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebrejština" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindština" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Maďarština" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italština" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonština" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korejština" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Lotyština" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nizozemština" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norština" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polština" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugalština" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugalština (Brazilská)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumunština" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruština" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovenština" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovinština" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Srbština" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Švédština" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thajština" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turečtina" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrajinština" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamština" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Čínština (zjednodušená)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Čínština (tradiční)" @@ -364,7 +368,7 @@ msgstr "Čínština (tradiční)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Přihlásit se do aplikace" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Duplicitní názvy nemohou existovat pod stejným nadřazeným názvem" msgid "Invalid choice" msgstr "Neplatný výběr" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Název" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Chyba serveru" msgid "An error has been logged by the server." msgstr "Server zaznamenal chybu." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Musí být platné číslo" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Vyberte měnu z dostupných možností" msgid "Username" msgstr "Uživatelské jméno" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Křestní jméno" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Křestní jméno uživatele" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Příjmení" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Příjmení uživatele" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Emailová adresa uživatele" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personál" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Má tento uživatel oprávnění personálu" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Super-uživatel" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Je tento uživatel superuživatel" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Je tento uživatel superuživatel" msgid "Active" msgstr "Aktivní" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Je tento uživatelský účet aktivní" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Nemáte oprávnění měnit tuto uživatelskou roli." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Pouze superuživatelé mohou vytvářet nové uživatele" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Váš účet byl vytvořen." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Pro přihlášení použijte funkci obnovení hesla" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Vítejte v InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Neplatná hodnota" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Datový soubor" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Vyberte datový soubor k nahrání" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Nepodporovaný typ souboru" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Soubor je příliš velký" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "V souboru nebyly nalezeny žádné sloupce" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "V souboru nebyly nalezeny žádné řádky s daty" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Nebyly zadány žádné řádky s daty" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Nebyly zadány žádné sloupce s daty" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Chybí povinný sloupec: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicitní sloupec: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Vzdálený obraz" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL souboru vzdáleného obrázku" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Stahování obrázků ze vzdálené URL není povoleno" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Sestavení musí být zrušeno před odstraněním" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Sestavení musí být zrušeno před odstraněním" msgid "Consumable" msgstr "Spotřební materiál" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Přiděleno" msgid "Available" msgstr "Dostupné" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Dostupné" msgid "Build Order" msgstr "Vytvořit objednávku" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Referenční číslo objednávky" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Příkaz sestavení pro který je toto sestavení přiděleno" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Uživatel nebo skupina odpovědná za tento příkaz k sestavení" msgid "External Link" msgstr "Externí odkaz" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Odkaz na externí URL" @@ -1110,7 +1114,7 @@ msgstr "Příkaz k sestavení {build} byl dokončen" msgid "A build order has been completed" msgstr "Příkaz k sestavení byl dokončen" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Nebyl specifikováno žádný výstup sestavení" @@ -1122,37 +1126,37 @@ msgstr "Výstup sestavení je již dokončen" msgid "Build output does not match Build Order" msgstr "Výstup sestavení neodpovídá příkazu sestavení" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Množství musí být vyšší než nula" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "Množství nemůže být větší než výstupní množství" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Výstup sestavy {serial} neprošel všemi požadavky" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "Vytvořit položku řádku objednávky" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Vytvořit objekt" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Vytvořit objekt" msgid "Quantity" msgstr "Množství" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Vyžadované množství pro objednávku" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Položka sestavení musí specifikovat výstup sestavení, protože hlavní díl je označen jako sledovatelný" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zabrané množství ({q}) nesmí překročit dostupné skladové množství ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Skladová položka je nadměrně zabrána" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Zabrané množství musí být větší než nula" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Množství musí být 1 pro zřetězený sklad" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "Vybraná položka zásob neodpovídá řádku BOM" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "Vybraná položka zásob neodpovídá řádku BOM" msgid "Stock Item" msgstr "Skladové položky" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Zdrojová skladová položka" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Skladové množství pro sestavení" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Instalovat do" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Cílová skladová položka" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Název dílu" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Balení" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID dílu" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "IPN dílu" @@ -1667,13 +1671,13 @@ msgstr "Sledovatelné" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "BOM Položka" @@ -2145,19 +2149,19 @@ msgstr "Neúplné výstupy" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "Je odkaz" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "Je soubor" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "Uživatel nemá oprávnění k odstranění této přílohy" @@ -2350,7 +2354,7 @@ msgstr "Jak často aktualizovat směnné kurzy (pro vypnutí nastavte na nulu)" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "dny" @@ -2578,7 +2582,7 @@ msgstr "Kopírovat šablony parametrů kategorie" msgid "Copy category parameter templates when creating a part" msgstr "Kopírování šablon parametrů kategorie při vytváření dílu" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Povolit pluginům reagovat na interní události" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Povolit kódy projektů" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "Povolit kódy projektů pro sledování projektů" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Funkce inventury" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Povolit funkci inventury pro evidenci stavu zásob a výpočet hodnoty zásob" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "Vyloučit externí umístění" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Vyloučit skladové položky na externích místech z výpočtů inventury" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Perioda automatické inventury" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Počet dní mezi automatickým záznamem inventury (pro vypnutí nastavte nulu)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "Interval mazání reportů" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Reporty o inventuře se po určitém počtu dní vymažou" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "Zobrazit celá jména uživatelů" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "Zobrazit plná jména uživatelů namísto uživatelských jmen" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "Povolit data zkušební stanice" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "Povolit sběr dat ze zkušební stanice pro výsledky testů" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Klíč nastavení (musí být unikátní - rozlišuje malá a velká písmena" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Skrýt neaktivní díly" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skrýt neaktivní díly ve výsledcích zobrazených na domovské stránce" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Zobrazit odebírané díly" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Zobrazit odebírané díly na domovské stránce" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Zobrazit odebírané kategorie" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Zobrazit kategorie odebíraných dílů na hlavní stránce" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Zobrazit nejnovější díly" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Zobrazit nejnovější díly na domovské stránce" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "Zobrazit neplatné kusovníky (BOMy)" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Zobrazit kusovníky (BOMy), které čekají na ověření, na domovské stránce" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Zobrazit nedávné změny zásob" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Zobrazit nedávno změněné skladové položky na domovské stránce" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Zobrazit nízký stav zásob" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Zobrazit na domovské stránce položky s nízkou skladovou zásobou" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Zobrazit vyčerpané zásoby" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Zobrazit vyčerpané položky na domovské stránce" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Zobrazit potřebné zásoby" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Zobrazit skladové položky potřebné pro sestavy na domovské stránce" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Zobrazit expirované zásoby" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Zobrazit expirované skladové položky na domovské stránce" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Zobrazit neaktuální zásoby" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Zobrazit neaktuální skladové položky na domovské stránce" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Zobrazit nevyřízené sestavy" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Zobrazit nevyřízené sestavy na domovské stránce" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Zobrazit sestavy po splatnosti" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Zobrazit sestavy po splatnosti na domovské stránce" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Zobrazit nevyřízené PO" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Zobrazit nevyřízené PO na domovské stránce" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Zobrazit PO po splatnosti" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Zobrazit PO po splatnosti na domovské stránce" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Zobrazit nevyřízené SO" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Zobrazit nevyřízené SO na domovské stránce" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Zobrazit SO po splatnosti" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Zobrazit SO po splatnosti na domovské stránce" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "Zobrazit čekající zásilky SO" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "Zobrazit čekající zásilky SO na domovské stránce" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Zobrazit novinky" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Zobrazit novinky na domovské stránce" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Zobrazení štítků na řádku" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Zobrazit štítky PDF v prohlížeči namísto stahování jako soubor" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Výchozí tiskárna štítků" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Konfigurovat tiskárnu štítků, která má být vybrána jako výchozí" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Zobrazení reportů na řádku" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Zobrazit reporty PDF v prohlížeči namísto stahování jako soubor" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Hledat díly" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Zobrazit díly v náhledu hledání" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Hledat díly dodavatele" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Zobrazit díly dodavatele v náhledu hledání" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Vyhledávání dílů výrobce" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Zobrazit díly výrobce v náhledu hledání" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Skrýt neaktivní díly" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Vyloučené neaktivní části z okna náhledu vyhledávání" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Hledat kategorie" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Zobrazit kategorie dílů v náhledu hledání" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Hledat zásoby" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Zobrazit skladové položky v náhledu hledání" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Skrýt nedostupné skladové položky" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Vyloučit skladové položky, které nejsou dostupné z okna náhledu hledání" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Hledat umístění" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Zobrazit skladová umístění v náhledu hledání" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Hledat společnosti" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Zobrazit společnosti v náhledu hledání" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Hledat objednávky sestav" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Zobrazit objednávky sestav v náhledu hledání" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Hledat nákupní objednávky" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "Zobrazit nákupní objednávky v náhledu hledání" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Vyloučit neaktivní nákupní objednávky" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "Vyloučit neaktivní nákupní objednávky z okna náhledu vyhledávání" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Hledat prodejní objednávky" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "Zobrazit prodejní objednávky v náhledu hledání" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "Vyloučit neaktivní prodejní objednávky" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "Vyloučit neaktivní prodejní objednávky z okna náhledu vyhledávání" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Vyhledávání vrácených objednávek" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "Zobrazit vrácené objednávky v okně náhledu vyhledávání" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "Vyloučit neaktivní vrácené objednávky" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "Vyloučit neaktivní vrácené objednávky z okna náhledu vyhledávání" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Náhled výsledků vyhledávání" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "Počet výsledků, které se mají zobrazit v každé části okna náhledu vyhledávání" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Regex hledání" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "Povolit regulární výrazy ve vyhledávacích dotazech" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "Vyhledávání celého slova" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "Vyhledávací dotazy vracejí výsledky pro shody celých slov" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Zobrazit množství ve formulářích" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Zobrazit dostupné množství dílů v některých formulářích" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "Klávesa Escape zavře formuláře" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "Zavřít modální formuláře pomocí klávesy escape" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Pevná navigační lišta" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "Pozice navigační lišty je pevně nastavena na horní okraj obrazovky" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Formát data" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Preferovaný formát pro zobrazení datumů" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Plánování dílů" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "Zobrazit informace o plánování dílů" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventura dílu" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zobrazit informace o skladových zásobách dílů (pokud je povolena funkce inventury)" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "Délka textu v tabulce" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximální délka textu v zobrazeních tabulek" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "Přijímat zprávy o chybách" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "Dostávat oznámení o systémových chybách" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "Poslední použité tiskárny" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "Uložte poslední použité tiskárny pro uživatele" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Uživatel" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "Množství cenové slevy" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "Množství cenové slevy" msgid "Price" msgstr "Cena" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "Jednotková cena při stanoveném množství" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Koncový bod" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "Koncový bod, ve kterém je tento webhook přijímán" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "Název tohoto webhooku" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "Je tento webhook aktivní" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Token pro přístup" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Tajný klíč" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Sdílený tajný klíč pro HMAC" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "ID zprávy" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Unikátní identifikátor pro tuto zprávu" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "Hostitel" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Hostitel, od kterého byla tato zpráva přijata" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Záhlaví" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Záhlaví této zprávy" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Tělo" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Tělo zprávy" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "Koncový bod, na kterém byla zpráva přijata" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Pracoval na" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "Byla práce na této zprávě dokončena?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "ID" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Název" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Název" msgid "Link" msgstr "Odkaz" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Zveřejněno" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Souhrn" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Přečteno" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "Byla tato novinka přečtena?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "Byla tato novinka přečtena?" msgid "Image" msgstr "Obrazek" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Soubor obrázku" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "Cílový typ modelu pro tento obrázek" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "Cílové ID modelu pro tento obrázek" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "Název jednotky musí být platný identifikátor" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "Název jednotky" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "Volitelný symbol jednotky" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definice" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "Definice jednotky" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Příloha" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Chybějící soubor" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Chybějící externí odkaz" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Vyberte soubor k přiložení" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentář" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "Komentář přílohy" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "Datum nahrání" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "Datum, kdy byl soubor nahrán" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "Velikost souboru" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "Velikost souboru v bytech" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "Uveden neplatný typ modelu pro přílohu" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Čas uzamčení" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Jméno úkolu" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Funkce" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Název funkce" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Argumenty" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Argumenty úlohy" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "Argumenty klíčových slov" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "Argumenty klíčových slov úlohy" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Název souboru" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "Typ modelu" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "Uživatel nemá oprávnění k vytváření nebo úpravám příloh pro tento model" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Název parametru" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Hodnota parametru" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "Popis dílu dodavatele" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "Popis dílu dodavatele" msgid "Note" msgstr "Poznámka" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "základní cena" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimální poplatek (např. poplatek za skladování)" @@ -4618,7 +4630,7 @@ msgstr "Počet kusů v balení" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Celkové množství dodávané v jednom balení. Pro jednotlivé položky ponechte prázdné." -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "více" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategorie dílu" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Název dílu" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "ID dílu nebo název dílu" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "Jedinečná hodnota ID dílu" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "Hodnota IPN dílu" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Vyberte nadřazený díl" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po index 7bce0c97da..03f7f84402 100644 --- a/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/da/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -65,9 +65,9 @@ msgstr "Angiv dato" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Fjernserver returnerede tomt svar" msgid "Supplied URL is not a valid image file" msgstr "Angivet URL er ikke en gyldig billedfil" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarsk" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tjekkisk" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dansk" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tysk" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Græsk" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engelsk" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spansk" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spansk (Mexikansk)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persisk" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finsk" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Fransk" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungarsk" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiensk" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japansk" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreansk" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Hollandsk" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polsk" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugisisk" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasilien)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russisk" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovensk" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbisk" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svensk" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kinesisk (forenklet)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kinesisk (traditionelt)" @@ -364,7 +368,7 @@ msgstr "Kinesisk (traditionelt)" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "Ugyldigt valg" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Navn" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Serverfejl" msgid "An error has been logged by the server." msgstr "En fejl blev logget af serveren." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Skal være et gyldigt tal" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Vælg valuta fra tilgængelige muligheder" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Du har ikke tilladelse til at ændre denne brugerrolle." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Kun superbrugere kan oprette nye brugere" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Ugyldig værdi" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Vælg datafilen til upload" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Filtype ikke understøttet" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Filen er for stor" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Ingen kolonner fundet i fil" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Ingen datarækker fundet i fil" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Ingen data-rækker angivet" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Ingen data-kolonner angivet" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Mangler påkrævet kolonne: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikeret kolonne: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Eksternt billede" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL til ekstern billedfil" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Download af billeder fra ekstern URL er ikke aktiveret" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Produktion skal anulleres, før den kan slettes" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Produktion skal anulleres, før den kan slettes" msgid "Consumable" msgstr "Forbrugsvare" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Allokeret" msgid "Available" msgstr "Tilgængelig" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Tilgængelig" msgid "Build Order" msgstr "Produktionsordre" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Produktionsordre reference" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Produktionsordre som er tildelt denne produktion" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Bruger eller gruppe ansvarlig for denne byggeordre" msgid "External Link" msgstr "Ekstern link" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Link til ekstern URL" @@ -1110,7 +1114,7 @@ msgstr "Bygningsordre {build} er fuldført" msgid "A build order has been completed" msgstr "En byggeordre er fuldført" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Bruger" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Vedhæftning" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Manglende fil" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Manglende eksternt link" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Vælg fil, der skal vedhæftes" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Filnavn" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po index 529d723b25..c15ce32b24 100644 --- a/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/de/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -65,9 +65,9 @@ msgstr "Datum eingeben" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Remote-Server gab leere Antwort zurück" msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabisch" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarisch" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tschechisch" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dänisch" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Deutsch" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Griechisch" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Englisch" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanisch (Mexikanisch)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estnisch" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Persisch" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Beenden" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Französisch" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hinduistisch" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungarisch" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italienisch" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Lettisch" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polnisch" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugiesisch" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugiesisch (Brasilien)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumänisch" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russisch" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slowakisch" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slowenisch" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbisch" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrainisch" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chinesisch (Vereinfacht)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chinesisch (Traditionell)" @@ -364,7 +368,7 @@ msgstr "Chinesisch (Traditionell)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] In App einloggen" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Doppelte Namen können nicht unter dem selben Elternteil existieren" msgid "Invalid choice" msgstr "Ungültige Auswahl" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Name" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Serverfehler" msgid "An error has been logged by the server." msgstr "Ein Fehler wurde vom Server protokolliert." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Muss eine gültige Nummer sein" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Währung aus verfügbaren Optionen auswählen" msgid "Username" msgstr "Benutzername" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Vorname" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Vorname des Benutzers" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Nachname" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Nachname des Benutzers" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "E-Mailadresse des Benutzers" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Mitarbeiter" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Hat der Benutzer die Mitarbeiter Berechtigung" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Administrator" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Ist dieser Benutzer ein Administrator" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Ist dieser Benutzer ein Administrator" msgid "Active" msgstr "Aktiv" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Ist dieses Benutzerkonto aktiv" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Sie haben keine Berechtigung, diese Benutzerrolle zu ändern." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Nur Superuser können neue Benutzer erstellen" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Ihr Konto wurde erstellt." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Bitte benutzen Sie die Passwort-zurücksetzen-Funktion, um sich anzumelden" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Willkommen bei InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Ungültiger Wert" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Datendatei" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Neue Datei zum Hochladen auswählen" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Nicht unterstütztes Dateiformat" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Datei ist zu groß" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Keine Spalten in der Datei gefunden" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Keine Datensätze in der Datei gefunden" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Keine Zeilen ausgewählt" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Keine Spalten angegeben" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Erforderliche Spalte '{name}' fehlt" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Doppelte Spalte: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Grafiken aus externen Quellen" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL der Remote-Bilddatei" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Das Herunterladen von Bildern von Remote-URLs ist nicht aktiviert" @@ -759,7 +763,7 @@ msgstr "Zugewiesen zu" msgid "Build must be cancelled before it can be deleted" msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Bauauftrag muss abgebrochen werden, bevor er gelöscht werden kann" msgid "Consumable" msgstr "Verbrauchsmaterial" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Zugeordnet" msgid "Available" msgstr "Verfügbar" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Verfügbar" msgid "Build Order" msgstr "Bauauftrag" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Bauauftragsreferenz" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Benutzer oder Gruppe verantwortlich für diesen Bauauftrag" msgid "External Link" msgstr "Externer Link" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Link zu einer externen URL" @@ -1110,7 +1114,7 @@ msgstr "Bauauftrag {build} wurde fertiggestellt" msgid "A build order has been completed" msgstr "Ein Bauauftrag wurde fertiggestellt" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "kein Endprodukt angegeben" @@ -1122,37 +1126,37 @@ msgstr "Endprodukt bereits hergstellt" msgid "Build output does not match Build Order" msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "Menge kann nicht größer als die Ausgangsmenge sein" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Build Ausgabe {serial} hat nicht alle erforderlichen Tests bestanden" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Objekt bauen" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Objekt bauen" msgid "Quantity" msgstr "Anzahl" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Erforderliche Menge für Auftrag" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "Ausgewählter Lagerbestand stimmt nicht mit BOM-Linie überein" msgid "Stock Item" msgstr "Lagerartikel" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Quell-Lagerartikel" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Installiere in" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Ziel-Lagerartikel" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Name des Teils" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Verpackungen" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Teil-ID" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "Teil IPN" @@ -1667,13 +1671,13 @@ msgstr "Nachverfolgbar" msgid "Inherited" msgstr "Vererbt" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Varianten zulassen" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Stücklisten-Position" @@ -2145,19 +2149,19 @@ msgstr "Unfertige Endprodukte" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "Link" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "Datei" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "Benutzer hat keine Berechtigung zum Löschen des Anhangs" @@ -2350,7 +2354,7 @@ msgstr "Wie oft Wechselkurse aktualisiert werden sollen (auf Null zum Deaktivier #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "Tage" @@ -2578,7 +2582,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Plugins ermöglichen auf interne Ereignisse zu reagieren" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Projektcodes aktivieren" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "Aktiviere Projektcodes für die Verfolgung von Projekten" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Inventurfunktionen" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Inventur-Funktionen zur Aufzeichnung von Lagerbeständen und zur Berechnung des Lagerwerts aktivieren" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "Externe Standorte ausschließen" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Lagerartikeln in externen Standorten in der Berechnungen zur Bestandsaufnahme ausschließen" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Automatische Inventur-Periode" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Anzahl der Tage zwischen automatischen Bestandsaufnahmen (zum Deaktivieren auf Null setzen)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "Löschintervall für Berichte" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Inventurberichte werden nach der angegebenen Anzahl von Tagen gelöscht" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "Vollständige Namen von Benutzern anzeigen" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "Vollständigen Namen von Benutzern anstatt Benutzername anzeigen" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "Teststation-Daten aktivieren" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "Teststation-Datenerfassung für Testergebnisse aktivieren" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ausblenden inaktiver Teile in den auf der Startseite angezeigten Ergebnissen" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Abonnierte Teile anzeigen" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Zeige abonnierte Teile auf der Startseite" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Abonnierte Kategorien anzeigen" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Zeige abonnierte Teilkategorien auf der Startseite" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Neueste Teile anzeigen" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Zeige neueste Teile auf der Startseite" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "Zeige ungültige Stücklisten" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Neueste Bestandänderungen anzeigen" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Niedrigen Bestand anzeigen" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Zeige geringen Bestand auf der Startseite" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Lerren Bestand anzeigen" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Benötigten Bestand anzeigen" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Zeige Bestand für Bauaufträge auf der Startseite" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Abgelaufenen Bestand anzeigen" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Zeige abgelaufene Lagerbestände auf der Startseite" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Alten Bestand anzeigen" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Ausstehende Bauaufträge anzeigen" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Zeige ausstehende Bauaufträge auf der Startseite" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Zeige überfällige Bauaufträge" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Zeige überfällige Bauaufträge auf der Startseite" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Ausstehende POs anzeigen" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Zeige ausstehende POs auf der Startseite" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Überfällige POs anzeigen" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Zeige überfällige POs auf der Startseite" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Ausstehende SOs anzeigen" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Zeige ausstehende SOs auf der Startseite" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Überfällige SOs anzeigen" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Zeige überfällige SOs auf der Startseite" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "Ausstehende Versandaufträge anzeigen" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "Ausstehende Versandaufträge auf der Startseite anzeigen" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Zeige Neuigkeiten" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Neuigkeiten auf der Startseite anzeigen" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Label inline anzeigen" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Standard-Etikettendrucker" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Einen standardmäßig ausgewählten Etikettendrucker konfigurieren" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Berichte inline anzeigen" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Teile suchen" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Teile in der Suchvorschau anzeigen" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Zulieferteile durchsuchen" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Zuliefererteile in der Suchvorschau anzeigen" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Herstellerteile durchsuchen" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Herstellerteile in der Suchvorschau anzeigen" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Inaktive Teile ausblenden" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Inaktive Teile in der Suchvorschau ausblenden" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Kategorien durchsuchen" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Teilekategorien in der Suchvorschau anzeigen" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Bestand durchsuchen" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Lagerartikel in Suchvorschau anzeigen" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Nicht verfügbare Artikel ausblenden" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nicht verfügbare Lagerartikel aus der Suchvorschau ausschließen" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Lagerorte durchsuchen" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Lagerorte in Suchvorschau anzeigen" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Firmen durchsuchen" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Firmen in der Suchvorschau anzeigen" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Bauaufträge durchsuchen" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Bauaufträge in der Suchvorschau anzeigen" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Bestellungen durchsuchen" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "Bestellungen in der Suchvorschau anzeigen" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktive Bestellungen ausblenden" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktive Bestellungen in der Suchvorschau ausblenden" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Aufträge durchsuchen" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "Aufträge in der Suchvorschau anzeigen" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "Inaktive Aufträge ausblenden" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktive Aufträge in der Suchvorschau ausblenden" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Suche nach Rücksendungen" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "Rücksendungen in der Suchvorschau anzeigen" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "Inaktive Rücksendungen ausblenden" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktive Rücksendungen in der Suchvorschau ausblenden" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Anzahl Suchergebnisse" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "Anzahl der Ergebnisse, die in der Vorschau pro Sektion angezeigt werden sollen" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Regex Suche" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "Reguläre Ausdrücke in Suchabfragen aktivieren" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "Ganzes Wort suchen" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "Suchabfragen liefern Ergebnisse für ganze Wortkombinationen" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "Esc-Taste schließt Formulare" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "Benutze die Esc-Taste, um Formulare zu schließen" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Fixierter Navigationsleiste" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "Position der Navigationsleiste am oberen Bildschirmrand fixieren" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Datumsformat" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Bevorzugtes Format für die Anzeige von Daten" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Teilzeitplanung" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "Zeige Zeitplanung für Teile" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventur" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Zeigt Inventur-Informationen an (falls die Inventurfunktion aktiviert ist)" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "Zeichenkettenlänge in Tabellen" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximale Länge für Zeichenketten, die in Tabellenansichten angezeigt werden" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "Fehlerberichte empfangen" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "Benachrichtigungen bei Systemfehlern erhalten" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "Zuletzt verwendete Druckmaschinen" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "Die zuletzt benutzten Druckmaschinen für einen Benutzer speichern" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Benutzer" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "Preisstaffelungs Anzahl" msgid "Price" msgstr "Preis" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Endpunkt" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "Endpunkt, an dem dieser Webhook empfangen wird" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "Name für diesen Webhook" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "Ist dieser Webhook aktiv" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Token für Zugang" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Geheimnis" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Shared Secret für HMAC" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "Nachrichten-ID" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Eindeutige Kennung für diese Nachricht" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "Host" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Host von dem diese Nachricht empfangen wurde" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Kopfzeile" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Header dieser Nachricht" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Body" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Body dieser Nachricht" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "Endpunkt, über den diese Nachricht empfangen wurde" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Bearbeitet" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "Wurde die Arbeit an dieser Nachricht abgeschlossen?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "ID" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Titel" msgid "Link" msgstr "Link" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Veröffentlicht" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Zusammenfassung" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Gelesen" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "Wurde diese Nachricht gelesen?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "Wurde diese Nachricht gelesen?" msgid "Image" msgstr "Bild" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Bilddatei" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "Einheitsname muss eine gültige Kennung sein" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "Einheitsname" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "Optionales Einheitssymbol" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definition" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "Einheitsdefinition" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Anhang" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Fehlende Datei" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Fehlender externer Link" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "Upload Datum" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "Datum der hochgeladenen Datei" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "Dateigröße" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "Dateigröße in Bytes" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "Ungültiger Modelltyp für Anhang angegeben" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Schlüssel" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "Artikel wurden aus einer Rücksendung erhalten" msgid "Error raised by plugin" msgstr "Fehler in Plugin aufgetreten" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "Wird ausgeführt" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "Anstehende Aufgaben" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Geplante Aufgaben" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "Fehlgeschlagene Aufgaben" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "Aufgabe-ID" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "Eindeutige Aufgaben-ID" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "Sperren" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Sperrzeit" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Aufgabenname" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Funktion" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Funktionsname" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Parameter" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Aufgaben-Parameter" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "Schlüsselwort Parameter" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "Schlüsselwort Parameter für Aufgaben" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Dateiname" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "Modelltyp" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "Benutzer hat keine Berechtigung, Anhänge für dieses Modell zu erstellen oder zu bearbeiten" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Parametername" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Parameterwert" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "Zuliefererbeschreibung des Teils" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "Zuliefererbeschreibung des Teils" msgid "Note" msgstr "Notiz" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "Basiskosten" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Mindestpreis" @@ -4618,7 +4630,7 @@ msgstr "Packmenge" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Gesamtmenge, die in einer einzelnen Packung geliefert wird. Für Einzelstücke leer lassen." -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "Vielfache" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "Wert" @@ -6557,12 +6569,12 @@ msgstr "Benutzt in" msgid "Building" msgstr "Im Bau" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Minimale Kosten" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Maximale Kosten" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Gesamtbestand" msgid "Input quantity for price calculation" msgstr "Menge für die Preisberechnung" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Teil-Kategorie" @@ -6867,7 +6879,7 @@ msgstr "Teil mit diesem Namen, IPN und Revision existiert bereits." msgid "Parts cannot be assigned to structural part categories!" msgstr "Strukturellen Teilekategorien können keine Teile zugewiesen werden!" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Name des Teils" @@ -7006,159 +7018,159 @@ msgstr "Verantwortlicher Besitzer für dieses Teil" msgid "Last Stocktake" msgstr "Letzte Inventur" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Mehrere verkaufen" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "Währung für die Berechnung der Preise im Cache" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "Minimale Stücklisten Kosten" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "Minimale Kosten für Teile" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "Maximale Stücklisten Kosten" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "Maximale Kosten für Teile" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "Minimale Einkaufskosten" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "Minimale historische Kaufkosten" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "Maximale Einkaufskosten" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "Maximale historische Einkaufskosten" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "Minimaler interner Preis" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "Minimale Kosten basierend auf den internen Staffelpreisen" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "Maximaler interner Preis" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "Maximale Kosten basierend auf internen Preisstaffeln" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "Minimaler Lieferantenpreis" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "Mindestpreis für Teil von externen Lieferanten" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "Maximaler Lieferantenpreis" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "Maximaler Preis für Teil von externen Lieferanten" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "Minimale Variantenkosten" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "Berechnete minimale Kosten für Variantenteile" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "Maximale Variantenkosten" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "Berechnete maximale Kosten für Variantenteile" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "Mindestkosten überschreiben" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "Maximale Kosten überschreiben" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "Berechnete Mindestkosten" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "Berechnete Maximalkosten" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "Mindestverkaufspreis" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "Mindestverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "Maximaler Verkaufspreis" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "Maximalverkaufspreis basierend auf Staffelpreisen" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "Mindestverkaufskosten" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "Minimaler historischer Verkaufspreis" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "Maximale Verkaufskosten" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "Maximaler historischer Verkaufspreis" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "Teil für die Inventur" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "Stückzahl" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "Anzahl einzelner Bestandseinträge zum Zeitpunkt der Inventur" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "Insgesamt verfügbarer Lagerbestand zum Zeitpunkt der Inventur" msgid "Date" msgstr "Datum" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "Datum der Inventur" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "Zusätzliche Notizen" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "Benutzer, der diese Inventur durchgeführt hat" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "Mindestbestandswert" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "Geschätzter Mindestwert des vorhandenen Bestands" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "Maximaler Bestandswert" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "Geschätzter Maximalwert des vorhandenen Bestands" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Bericht" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "Inventur-Berichtsdatei (intern generiert)" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Anzahl der Teile" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "Anzahl der Teile, die von der Inventur abgedeckt werden" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "Benutzer, der diesen Inventurbericht angefordert hat" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "Ungültiger Vorlagenname - es muss mindestens ein alphanumerisches Zeichen enthalten sein" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "Auswahl muss einzigartig sein" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "Testvorlage mit demselben Schlüssel existiert bereits für Teil" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Test-Name" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "Namen für diesen Test eingeben" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "Testschlüssel" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "Vereinfachter Schlüssel zum Test" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Test-Beschreibung" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Aktiviert" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "Ist dieser Test aktiviert?" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Benötigt" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "Muss dieser Test erfolgreich sein?" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Erfordert Wert" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Anhang muss eingegeben werden" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Auswahlmöglichkeiten" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "Gültige Optionen für diesen Test (durch Komma getrennt)" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "Checkbox-Parameter können keine Einheiten haben" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "Checkbox-Parameter können keine Auswahl haben" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "Physikalische Einheiten für diesen Parameter" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "Parameter-Beschreibung" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Checkbox" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "Ist dieser Parameter eine Checkbox?" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gültige Optionen für diesen Parameter (durch Kommas getrennt)" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "Ungültige Auswahl für Parameterwert" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standard-Wert" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "Standard Parameter Wert" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "Teilnummer oder Teilname" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "Eindeutige Teil-ID" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "IPN-Wert des Teils" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "Stufe" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "Stücklistenebene" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "Untergeordnetes Teil" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "Diese Stücklisten-Position ist optional" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Diese Stücklisten-Position ist ein Verbrauchsartikel (sie wird nicht in Bauaufträgen verfolgt)" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Überschuss" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "Referenz der Postion auf der Stückliste" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "Notizen zur Stücklisten-Position" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "Prüfsumme" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "überprüft" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "Diese Stücklistenposition wurde validiert" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Wird vererbt" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "Zuliefererteil muss festgelegt sein" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "Stücklisten Ersatzteile" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "Übergeordnete Stücklisten Position" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "Ersatzteil" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "Teil 1" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "Teil 2" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "verknüpftes Teil auswählen" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "Teil-Beziehung kann nicht zwischen einem Teil und sich selbst erstellt werden" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "Doppelte Beziehung existiert bereits" @@ -8593,7 +8605,7 @@ msgstr "Teilbild nicht gefunden" msgid "Part Pricing" msgstr "Teilbepreisung" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "Das Plugin kann nicht gelöscht werden, da es derzeit aktiv ist" @@ -9001,44 +9013,44 @@ msgstr "Unterstützt das Scannen von TME-Barcodes" msgid "The Supplier which acts as 'TME'" msgstr "Der Lieferant, der als 'TME' fungiert" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "Nur Mitarbeiter können Plugins verwalten" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "Plugin-Installation ist deaktiviert" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Plugin wurde erfolgreich installiert" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin installiert in {path}" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "Plugin wurde nicht in der Registry gefunden" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "Plugin ist kein gepacktes Plugin" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "Plugin-Paketname nicht gefunden" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "Plugin-Deinstallation ist deaktiviert" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Plugin kann nicht deinstalliert werden, da es momentan aktiv ist" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "Plugin erfolgreich deinstallieren" @@ -9156,6 +9168,38 @@ msgstr "Beispiel-Währungswechsel-Plugin" msgid "InvenTree Contributors" msgstr "InvenTree Mitwirkende" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "Quell-URL" @@ -9234,6 +9278,30 @@ msgstr "Konfiguration löschen" msgid "Delete the plugin configuration from the database" msgstr "Plugin-Konfiguration aus der Datenbank löschen" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" @@ -9518,7 +9586,7 @@ msgstr "Testergebnisse" msgid "Test" msgstr "Test" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Ergebnis" @@ -9892,7 +9960,7 @@ msgstr "Anzahl stimmt nicht mit den Seriennummern überein" msgid "Serial numbers already exist" msgstr "Seriennummern existieren bereits" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "Testvorlage existiert nicht" @@ -9940,67 +10008,67 @@ msgstr "Status-Codes müssen zusammenpassen" msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "Wert muss für diesen Test angegeben werden" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "Anhang muss für diesen Test hochgeladen werden" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Testergebnis" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "Test Ausgabe Wert" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "Test Ergebnis Anhang" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "Test Notizen" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "Teststation" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "Der Bezeichner der Teststation, in der der Test durchgeführt wurde" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "Gestartet" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "Der Zeitstempel des Teststarts" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "Fertiggestellt" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "Der Zeitstempel der Test-Beendigung" diff --git a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po index 67173e9458..516256e157 100644 --- a/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/el/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -65,9 +65,9 @@ msgstr "Εισάγετε ημερομηνία" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Ο διακομιστής επέστρεψε σφάλμα %1$d %2$s" msgid "Supplied URL is not a valid image file" msgstr "Το URL δεν είναι έγκυρο αρχείο εικόνας" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Βουλγάρικα" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Τσέχικα" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Δανέζικα" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Γερμανικά" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Ελληνικά" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Αγγλικά" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Ισπανικά" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Ισπανικά (Μεξικό)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Φαρσί / Περσικά" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Φινλανδικά" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Γαλλικά" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Εβραϊκά" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Ινδικά" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ούγγρικα" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Ιταλικά" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Ιαπωνικά" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Κορεάτικα" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Νορβηγικά" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Πολωνικά" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Πορτογαλικά" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Πορτογαλικά (Βραζιλίας)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ρωσικά" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Σλοβάκικα" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Σλοβενικά" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Σερβικά" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Σουηδικά" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Ταϊλανδέζικα" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Τούρκικα" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Βιετναμέζικα" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Κινέζικα (απλοποιημένα)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Κινέζικα (Παραδοσιακά)" @@ -364,7 +368,7 @@ msgstr "Κινέζικα (Παραδοσιακά)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Σύνδεση στην εφαρμογή" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Διπλότυπα ονόματα δεν μπορούν να υπάρχ msgid "Invalid choice" msgstr "Μη έγκυρη επιλογή" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Όνομα" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Σφάλμα διακομιστή" msgid "An error has been logged by the server." msgstr "Ένα σφάλμα έχει καταγραφεί από το διακομιστή." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Πρέπει να είναι αριθμός" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Επιλέξτε νόμισμα από τις διαθέσιμες επ msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Δεν έχετε άδεια να αλλάξετε αυτόν τον ρόλο χρήστη." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Μόνο υπερχρήστες (superusers) μπορούν να δημιουργήσουν νέους χρήστες" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Ο λογαριασμός σας δημιουργήθηκε." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Παρακαλούμε χρησιμοποιήστε τη λειτουργία επαναφοράς κωδικού πρόσβασης για να συνδεθείτε" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Καλώς ήρθατε στο InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Μη έγκυρη τιμή" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Αρχείο Δεδομένων" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Επιλέξτε ένα αρχείο για ανέβασμα" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Μη υποστηριζόμενος τύπος αρχείου" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Το αρχείο είναι πολύ μεγάλο" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Δεν βρέθηκαν στήλες στο αρχείο" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Δεν βρέθηκαν γραμμές δεδομένων στο αρχείο" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Δεν παρασχέθηκαν σειρές δεδομένων" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Δεν δόθηκαν στήλες δεδομένων" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Λείπει απαιτούμενη στήλη: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Διπλή στήλη: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Απομακρυσμένες Εικόνες" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "Διεύθυνση URL του αρχείου απομακρυσμένης εικόνας" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Η λήψη εικόνων από απομακρυσμένο URL δεν είναι ενεργοποιημένη" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγραφεί" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Η έκδοση πρέπει να ακυρωθεί πριν διαγρα msgid "Consumable" msgstr "Αναλώσιμο" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Κατανεμημένο" msgid "Available" msgstr "Διαθέσιμο" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Διαθέσιμο" msgid "Build Order" msgstr "Σειρά Κατασκευής" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Αναφορά Παραγγελίας Κατασκευής" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "BuildOrder στην οποία έχει δοθεί αυτή η κατα #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Χρήστης ή ομάδα υπεύθυνη για αυτή την ε msgid "External Link" msgstr "Εξωτερικοί σύνδεσμοι" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Σύνδεσμος προς εξωτερική διεύθυνση URL" @@ -1110,7 +1114,7 @@ msgstr "Η παραγγελία κατασκευής {build} έχει ολοκλ msgid "A build order has been completed" msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθεί" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Δεν καθορίστηκε έξοδος κατασκευής" @@ -1122,37 +1126,37 @@ msgstr "Η παραγγελία κατασκευής έχει ολοκληρωθ msgid "Build output does not match Build Order" msgstr "Η έξοδος κατασκευής δεν ταιριάζει με την παραγγελία κατασκευής" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "Η ποσότητα δεν μπορεί να είναι μεγαλύτερη από την παραγόμενη ποσότητα" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Το προϊόν κατασκευής {serial} δεν έχει περάσει όλες τις απαιτούμενες δοκιμές" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Αντικείμενο κατασκευής" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Αντικείμενο κατασκευής" msgid "Quantity" msgstr "Ποσότητα" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Απαιτούμενη ποσότητα για την εντολή κατασκευής" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Το στοιχείο κατασκευής πρέπει να ορίζει μια έξοδο κατασκευής, καθώς το κύριο τμήμα επισημαίνεται ως ανιχνεύσιμο" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Η καταχωρημένη ποσότητα ({q}) δεν πρέπει να υπερβαίνει τη διαθέσιμη ποσότητα αποθέματος ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Στοιχείο αποθέματος είναι υπερ-κατανεμημένο" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Η ποσότητα πρέπει να είναι μεγαλύτερη από 0" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Η ποσότητα πρέπει να είναι 1 για σειριακό απόθεμα" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν ταιριάζει με τη γραμμή ΤΥ" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "Το επιλεγμένο στοιχείο αποθέματος δεν msgid "Stock Item" msgstr "Στοιχείο Αποθέματος" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Στοιχείο πηγαίου αποθέματος" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Ποσότητα αποθέματος για διάθεση για κατασκευή" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Εγκατάσταση σε" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Αποθήκη προορισμού" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Χρήστης" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "Σύνδεσμος" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Συνημμένο" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Το αρχείο λείπει" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Λείπει ο εξωτερικός σύνδεσμος" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Επιλέξτε αρχείο για επισύναψη" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Σχόλιο" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Όνομα αρχείου" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po index c08af3c27d..054f881029 100644 --- a/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-10 18:13+0000\n" +"POT-Creation-Date: 2024-09-17 04:17+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -66,9 +66,9 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -212,151 +212,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -365,7 +369,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -420,9 +424,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -447,7 +451,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -518,12 +522,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -537,43 +541,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -586,85 +590,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -760,7 +764,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -768,7 +772,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -817,7 +821,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -826,7 +830,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -867,7 +871,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -893,10 +897,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1069,7 +1073,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1111,7 +1115,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1123,37 +1127,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1195,36 +1199,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1242,19 +1246,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1263,7 +1267,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1601,12 +1605,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1668,13 +1672,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2146,19 +2150,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2351,7 +2355,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2579,7 +2583,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3248,488 +3252,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3737,96 +3749,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3843,28 +3855,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3874,186 +3886,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4091,75 +4103,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4495,7 +4507,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4506,7 +4518,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4581,7 +4593,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4593,11 +4605,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4619,7 +4631,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5205,7 +5217,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6558,12 +6570,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6709,7 +6721,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6745,7 +6757,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6868,7 +6880,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7007,159 +7019,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7171,363 +7183,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8594,7 +8606,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9002,44 +9014,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9157,6 +9169,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9235,6 +9279,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9519,7 +9587,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9893,7 +9961,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9941,67 +10009,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po index 1d1f428dda..093d92900e 100644 --- a/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -65,9 +65,9 @@ msgstr "Ingrese la fecha" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "El servidor remoto devolvió una respuesta vacía" msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Árabe" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Búlgaro" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Checo" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danés" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Alemán" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Griego" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglés" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Español" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Español (México)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estoniano" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finlandés" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francés" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebreo" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindú" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Húngaro" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiano" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonés" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coreano" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Latvian" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holandés" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Noruego" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polaco" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugués" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugués (Brasileño)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumano" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruso" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Eslovaco" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Esloveno" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbio" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Sueco" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tailandés" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turco" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ucraniano" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chino (Simplificado)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chino (Tradicional)" @@ -364,7 +368,7 @@ msgstr "Chino (Tradicional)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Iniciar sesión en la aplicación" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Nombre" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Error de servidor" msgid "An error has been logged by the server." msgstr "Se ha registrado un error por el servidor." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Debe ser un número válido" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Seleccionar moneda de las opciones disponibles" msgid "Username" msgstr "Nombre de usuario" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Nombre" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Nombre del usuario" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Apellido" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Apellido del usuario" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Dirección de correo del usuario" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personal" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Tiene este usuario permisos de personal" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Superusuario" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Es este usuario un superusuario" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Es este usuario un superusuario" msgid "Active" msgstr "Activo" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Esta cuenta de usuario está activa" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "No tiene permiso para cambiar este rol de usuario." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Solo los superusuarios pueden crear nuevos usuarios" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Su cuenta ha sido creada." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Por favor, utilice la función de restablecer la contraseña para iniciar sesión" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Bienvenido a InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Archivo de datos" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Seleccione el archivo para subir" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Tipo de archivo no soportado" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "El archivo es demasiado grande" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "No hay columnas en el archivo" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "No hay filas de datos en el archivo" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "No se proporcionaron filas de datos" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "No hay columnas de datos proporcionadas" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta la columna requerida: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Columna duplicada: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Imagen remota" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL de imagen remota" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "La descarga de imágenes desde la URL remota no está habilitada" @@ -759,7 +763,7 @@ msgstr "Asignadas a" msgid "Build must be cancelled before it can be deleted" msgstr "La compilación debe cancelarse antes de poder ser eliminada" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "La compilación debe cancelarse antes de poder ser eliminada" msgid "Consumable" msgstr "Consumible" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Asignadas" msgid "Available" msgstr "Disponible" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Disponible" msgid "Build Order" msgstr "Construir órden" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Número de orden de construcción o armado" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Orden de Construcción o Armado a la que se asigna" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Usuario o grupo responsable de esta orden de construcción" msgid "External Link" msgstr "Link externo" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Enlace a URL externa" @@ -1110,7 +1114,7 @@ msgstr "El pedido {build} ha sido procesado" msgid "A build order has been completed" msgstr "Pedido #[order] ha sido procesado" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "No se ha especificado salida de construcción" @@ -1122,37 +1126,37 @@ msgstr "La construcción de la salida ya está completa" msgid "Build output does not match Build Order" msgstr "La salida de la construcción no coincide con el orden de construcción" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "La cantidad debe ser mayor que cero" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "La cantidad no puede ser mayor que la cantidad de salida" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "La construcción {serial} no ha pasado todas las pruebas requeridas" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "Construir línea de pedido" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Ensamblar equipo" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Ensamblar equipo" msgid "Quantity" msgstr "Cantidad" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Cantidad requerida para orden de ensamble" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item de construcción o armado debe especificar un resultado o salida, ya que la parte maestra está marcada como rastreable" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Cantidad asignada ({q}) no debe exceder la cantidad disponible de stock ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Artículo de stock sobreasignado" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Cantidad asignada debe ser mayor que cero" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "La cantidad debe ser 1 para el stock serializado" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "El artículo de almacén selelccionado no coincide con la línea BOM" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,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:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Producto original de stock" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Cantidad de stock a asignar para construir" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Instalar en" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Artículo de stock de destino" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "Nivel de construcción" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Nombre de parte" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Paquetes" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID de Parte" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "IPN de la parte" @@ -1667,13 +1671,13 @@ msgstr "Rastreable" msgid "Inherited" msgstr "Heredado" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Permitir variantes" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Item de Lista de Materiales" @@ -2145,25 +2149,25 @@ msgstr "Salidas incompletas" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" #: common/currency.py:132 msgid "Invalid currency code" -msgstr "" +msgstr "Código de divisa inválido" #: common/currency.py:134 msgid "Duplicate currency code" @@ -2225,7 +2229,7 @@ msgstr "Fecha y hora de la última actualización" #: common/models.py:122 msgid "Site URL is locked by configuration" -msgstr "" +msgstr "La URL del sitio está bloqueada por su configuración" #: common/models.py:152 msgid "Unique project code" @@ -2333,7 +2337,7 @@ msgstr "Seleccione la moneda base para los cálculos de precios" #: common/models.py:1285 msgid "Supported Currencies" -msgstr "" +msgstr "Monedas admitidas" #: common/models.py:1286 msgid "List of supported currency codes" @@ -2350,7 +2354,7 @@ msgstr "Con qué frecuencia actualizar los tipos de cambio (establecer a cero pa #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "días" @@ -2578,7 +2582,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Habilitar plugins para responder a eventos internos" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Habilitar códigos de proyecto" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "Habilitar códigos de proyecto para rastrear proyectos" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Funcionalidad de inventario" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Habilite la funcionalidad de inventario para registrar los niveles de existencias y calcular el valor de las existencias" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "Excluir Ubicaciones Externas" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Excluir artículos en existencia en ubicaciones externas de los cálculos de inventario" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Periodo de inventario automático" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Número de días entre el registro automático del inventario (establecer en cero para desactivarlo)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "Intervalo de borrado de informe" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Los informes de inventario se eliminarán después de un número de días especificado" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "Mostrar nombres completos de los usuarios" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "Mostrar nombres completos de usuarios en lugar de nombres de usuario" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "Habilitar datos de estación de prueba" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "Habilitar la recolección de datos de estaciones de prueba para resultados de prueba" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Tecla de ajustes (debe ser única - mayúsculas y minúsculas" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Ocultar partes inactivas" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ocultar partes inactivas en los resultados mostrados en la página de inicio" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Mostrar partes suscritas" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Mostrar las partes suscritas en la página principal" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Mostrar categorías suscritas" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Mostrar categorías de partes suscritas en la página de inicio" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Mostrar últimas partes" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Mostrar las últimas partes en la página de inicio" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "Mostrar BOM inválidos" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Mostrar BOMs que esperan validación en la página de inicio" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Mostrar cambios recientes de stock" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar artículos de stock recientemente modificados en la página de inicio" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Mostrar stock bajo" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Mostrar artículos de stock bajo en la página de inicio" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Mostrar stock agotado" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Mostrar artículos agotados en la página de inicio" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Mostrar stock necesario" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar artículos de stock necesarios para trabajos en la página de inicio" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Mostrar stock caducado" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Mostrar artículos de stock caducados en la página de inicio" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Mostrar stock obsoleto" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Mostrar artículos de stock obsoletos en la página de inicio" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Mostrar trabajos pendientes" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Mostrar trabajos vencidos" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Mostrar trabajos pendientes en la página de inicio" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Mostrar Órdenes de Compra Pendientes" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Mostrar las OC destacadas en la página de inicio" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Mostrar OC atrasadas" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Mostrar las OC vencidas en la página de inicio" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Mostrar OV pendiemtes" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Mostrar OV pendientes en la página de inicio" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Mostrar OV atrasadas" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Mostrar OV atrasadas en la página de inicio" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "Mostrar envíos pendientes de SO" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "Mostrar envíos SO pendientes en la página de inicio" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Mostrar novedades" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Mostrar las últimas novedades de InvenTree en la página de inicio" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Mostrar etiqueta interior" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Mostrar etiquetas PDF en el navegador, en lugar de descargar como un archivo" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Impresora predeterminada" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Mostrar informe en línea" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Mostrar informes PDF en el navegador, en lugar de descargar como un archivo" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Buscar partes" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Buscar partes de proveedor" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Buscar Partes del Fabricante" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Ocultar Partes Inactivas" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Excluir las partes inactivas de la ventana de previsualización de búsqueda" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Buscar categorías" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Mostrar categorias de la parte en la ventana de previsualización de búsqueda" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Buscar inventario" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Mostrar artículos del stock en la ventana de previsualización de búsqueda" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Ocultar Artículos del Stock Agotados" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Excluir artículos de stock que no están disponibles en la ventana de previsualización de búsqueda" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Buscar ubicaciones" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Mostrar ubicaciones de almacén en la ventana de vista previa de búsqueda" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Buscar empresas" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Mostrar empresas en la ventana de vista previa de búsqueda" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Buscar Pedidos de Construcción" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Buscar órdenes de compra" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Excluir pedidos de compra inactivos" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Buscar órdenes de venta" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Buscar órdenes de devolución" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Resultados de la vista previa" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Búsqueda usando una expresión regular" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "Habilitar expresiones regulares en las consultas de búsqueda" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "Búsqueda por palabra completa" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "Las consultas de búsqueda devuelven resultados para palabras enteras coincidentes" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Mostrar cantidad en formularios" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Mostrar la cantidad de partes disponibles en algunos formularios" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "Formularios de cierre de teclas de escape" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "Usa la clave de escape para cerrar formularios modales" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Barra de navegación fija" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "La posición de la barra de navegación se fija en la parte superior de la pantalla" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Formato de Fecha" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Formato preferido para mostrar fechas" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planificación de partes" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "Recibir reportes de error" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "Últimas impresoras usadas" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Usuario" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "Cantidad de salto de precio" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "Cantidad de salto de precio" msgid "Price" msgstr "Precio" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "Precio unitario a la cantidad especificada" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "Punto final en el que se recibe este webhook" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "Nombre para este webhook" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "Está activo este webhook" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Token para el acceso" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Clave" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Secreto compartido para HMAC" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "ID de mensaje" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Identificador único para este mensaje" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Servidor desde el cual se recibió este mensaje" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Encabezado" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Encabezado del mensaje" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Cuerpo" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Cuerpo de este mensaje" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "Endpoint en el que se recibió este mensaje" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Trabajado en" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "¿El trabajo en este mensaje ha terminado?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Título" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Título" msgid "Link" msgstr "Enlace" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Publicado" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Resumen" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Leer" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "¿Esta noticia ya fue leída?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "¿Esta noticia ya fue leída?" msgid "Image" msgstr "Imágen" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Archivo de imagen" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "Nombre de unidad debe ser un identificador válido" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "Nombre de unidad" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Símbolo" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "Símbolo de unidad opcional" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definición" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "Definición de unidad" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Archivo adjunto" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Archivo no encontrado" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Falta enlace externo" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Seleccionar archivo para adjuntar" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Comentario" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Clave" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "Etiqueta" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "Los artículos han sido recibidos contra una orden de devolución" msgid "Error raised by plugin" msgstr "Error generado por el complemento" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "Está en ejecución" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "Tareas pendientes" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Tareas Programadas" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "Tareas fallidas" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "Identificación de Tarea" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "Identificación de tarea única" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "Bloquear" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Bloquear hora" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Nombre de la tarea" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Función" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Nombre de la Función" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Argumentos" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Argumentos de la tarea" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "Argumentos de palabra clave" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "Argumentos de palabra clave de tarea" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Nombre de Archivo" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Nombre del parámetro" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Valor del parámetro" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "Descripción de la parte del proveedor" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "Descripción de la parte del proveedor" msgid "Note" msgstr "Nota" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "costo base" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Cargo mínimo (p. ej., cuota de almacenamiento)" @@ -4618,7 +4630,7 @@ msgstr "Cantidad de paquete" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Cantidad total suministrada en un solo paquete. Dejar vacío para artículos individuales." -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "múltiple" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "Datos" @@ -6557,12 +6569,12 @@ msgstr "Usado en" msgid "Building" msgstr "En construcción" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Costo mínimo" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Costo máximo" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Inventario Total" msgid "Input quantity for price calculation" msgstr "Cantidad de entrada para el cálculo del precio" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoría de parte" @@ -6867,7 +6879,7 @@ msgstr "Parte con este nombre, IPN y revisión ya existe." msgid "Parts cannot be assigned to structural part categories!" msgstr "¡No se pueden asignar partes a las categorías de partes estructurales!" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Nombre de la parte" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "Último inventario" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Vender múltiples" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "Moneda utilizada para almacenar en caché los cálculos de precios" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "Costo mínimo de BOM" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "Costo mínimo de partes de componentes" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "Costo máximo de BOM" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "Costo máximo de partes de componentes" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "Costo mínimo de compra" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "Costo histórico mínimo de compra" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "Costo máximo de compra" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "Costo histórico máximo de compra" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "Precio interno mínimo" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "Costo mínimo basado en precios reducidos internos" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "Precio interno máximo" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "Costo máximo basado en precios reducidos internos" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "Precio mínimo de proveedor" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "Precio mínimo de la parte de proveedores externos" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "Precio máximo de proveedor" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "Precio máximo de la parte de proveedores externos" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "Costo mínimo de variante" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "Costo mínimo calculado de las partes variantes" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "Costo máximo de variante" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "Costo máximo calculado de las partes variantes" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "Anular el costo mínimo" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "Costo mínimo general calculado" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "Precio de venta mínimo" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "Precio de venta mínimo basado en precios reducidos" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "Precio de venta máximo" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "Precio de venta máximo basado en precios reducidos" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "Costo de venta mínimo" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "Precio de venta mínimo histórico" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "Costo de Venta Máximo" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "Número de artículos" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "Fecha" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "Notas adicionales" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "Costo de Stock Mínimo" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "Costo mínimo estimado del stock disponible" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Informe" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Número de partes" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "Las plantillas de prueba solo pueden ser creadas para partes de prueba" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nombre de prueba" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "Introduzca un nombre para la prueba" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Descripción de prueba" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "Introduce la descripción para esta prueba" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Habilitado" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Requerido" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "¿Es necesario pasar esta prueba?" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Requiere valor" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "¿Esta prueba requiere un valor al agregar un resultado de la prueba?" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Adjunto obligatorio" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "¿Esta prueba requiere un archivo adjunto al agregar un resultado de la prueba?" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Opciones" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "El nombre de parámetro en la plantilla tiene que ser único" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "Nombre de Parámetro" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Casilla de verificación" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "¿Es este parámetro una casilla de verificación?" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "Opciones válidas para este parámetro (separados por comas)" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "Opción inválida para el valor del parámetro" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "Parte principal" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Plantilla de parámetro" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Valor del parámetro" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valor predeterminado" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "Valor de parámetro por defecto" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "ID de parte o nombre de parte" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "Valor de ID de parte única" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "Valor IPN de parte" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "Nivel" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "Nivel de BOM" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Seleccionar parte principal" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "Sub parte" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "Seleccionar parte a utilizar en BOM" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "Cantidad del artículo en BOM" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "Este artículo BOM es opcional" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Este artículo de BOM es consumible (no está rastreado en órdenes de construcción)" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Exceso" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Cantidad estimada de desperdicio de construcción (absoluta o porcentaje)" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "Referencia de artículo de BOM" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "Notas del artículo de BOM" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "Suma de verificación" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "Suma de verificación de línea de BOM" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Validado" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "Este artículo de BOM ha sido validado" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Este artículo BOM es heredado por BOMs para partes variantes" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Artículos de stock para partes variantes pueden ser usados para este artículo BOM" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "La cantidad debe ser un valor entero para las partes rastreables" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "Debe especificar la subparte" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "Ítem de BOM sustituto" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sustituta no puede ser la misma que la parte principal" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "Artículo BOM superior" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "Sustituir parte" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "Seleccionar parte relacionada" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "Imagen de parte no encontrada" msgid "Part Pricing" msgstr "Precio de parte" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "URL de origen" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "No se han proporcionado objetos válidos a la plantilla" @@ -9518,7 +9586,7 @@ msgstr "Resultados de la Prueba" msgid "Test" msgstr "Prueba" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Resultado" @@ -9892,7 +9960,7 @@ msgstr "La cantidad no coincide con los números de serie" msgid "Serial numbers already exist" msgstr "Números de serie ya existen" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "Los códigos de estado del stock deben coincidir" msgid "StockItem cannot be moved as it is not in stock" msgstr "Stock no se puede mover porque no está en stock" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "Notas de entrada" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "Debe proporcionarse un valor para esta prueba" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "El archivo adjunto debe ser subido para esta prueba" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Resultado de la prueba" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "Valor de salida de prueba" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "Adjunto de resultados de prueba" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "Notas de prueba" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po index 685ea3df4c..54bc934326 100644 --- a/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-17 00:00\n" "Last-Translator: \n" "Language-Team: Spanish, Mexico\n" "Language: es_MX\n" @@ -65,9 +65,9 @@ msgstr "Ingrese la fecha" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "El servidor remoto devolvió una respuesta vacía" msgid "Supplied URL is not a valid image file" msgstr "La URL proporcionada no es un archivo de imagen válido" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Árabe" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Búlgaro" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Checo" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danés" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Alemán" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Griego" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglés" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Español" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Español (México)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estonia" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finlandés" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francés" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebreo" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Húngaro" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiano" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonés" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coreano" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Letón" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holandés" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Noruego" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polaco" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugués" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugués (Brasileño)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumano" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruso" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Eslovaco" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Esloveno" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbio" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Sueco" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tailandés" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turco" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ucraniano" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chino (Simplificado)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chino (Tradicional)" @@ -364,7 +368,7 @@ msgstr "Chino (Tradicional)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Iniciar sesión en la aplicación" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Los nombres duplicados no pueden existir bajo el mismo padre" msgid "Invalid choice" msgstr "Selección no válida" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Nombre" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Error de servidor" msgid "An error has been logged by the server." msgstr "Se ha registrado un error por el servidor." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Debe ser un número válido" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Seleccionar moneda de las opciones disponibles" msgid "Username" msgstr "Nombre de usuario" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Nombre" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Nombre de usuario" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Apellido" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Apellido del usuario" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Dirección de email del usuario" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personal" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Tiene permisos de personal este usuario" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Superusuario" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Este usuario es un superusuario" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Este usuario es un superusuario" msgid "Active" msgstr "Activo" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Esta cuenta de usuario está activa" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "No tiene permiso para cambiar este cargo de usuario." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Solo los superusuarios pueden crear nuevos usuarios" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Su cuenta ha sido creada." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Por favor, utilice la función de restablecer la contraseña para iniciar sesión" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Bienvenido a InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Archivo de datos" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Seleccione el archivo para subir" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Tipo de archivo no soportado" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "El archivo es demasiado grande" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "No hay columnas en el archivo" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "No hay filas de datos en el archivo" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "No se proporcionaron filas de datos" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "No hay columnas de datos para suministrar" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta la columna requerida: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Columna duplicada: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Imagen remota" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL de imagen remota" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "La descarga de imágenes desde la URL remota no está habilitada" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po index 7ed87d5535..5459c7dcdf 100644 --- a/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/et/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Language: et_EE\n" @@ -65,9 +65,9 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Araabia" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgaaria keel" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tšehhi" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Taani" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Saksa keel" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Kreeka keel" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglise keel" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Hispaania keel" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Eesti" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "" + +#: InvenTree/locales.py:50 +msgid "Serbian" +msgstr "" + +#: InvenTree/locales.py:51 +msgid "Swedish" +msgstr "" + +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tai keel" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Türgi keel" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukraina keel" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Eesnimi" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Perekonnanimi" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Osa ID" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po index 42f1dd0f9c..083af17dee 100644 --- a/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fa/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -65,9 +65,9 @@ msgstr "تاریخ را وارد کنید" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "فایل‌های داده" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "فایل را برای بارگذاری انتخاب کنید" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "این نوع فایل پشتیبانی نمی‌شود" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "حجم فایل خیلی بزرگ است" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "هیچ ستونی در فایل یافت نشد" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "هیچ ردیف داده ای در فایل یافت نشد" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "هیچ ردیف داده ای ارائه نشده است" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "هیچ ستون داده ای ارائه نشده است" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "ستون مورد نیاز وجود ندارد: \"{name}\"" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "ستون تکراری: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "آدرس فایل تصویری از راه دور" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po index 7fc84a1e83..8768ecc8fe 100644 --- a/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -65,9 +65,9 @@ msgstr "Anna päivämäärä" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Etäpalvelin palautti tyhjän vastauksen" msgid "Supplied URL is not a valid image file" msgstr "Annettu URL ei ole kelvollinen kuvatiedosto" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "tšekki" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "tanska" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "saksa" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "kreikka" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "englanti" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "espanja" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "espanja (Meksiko)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "farsi / persia" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "suomi" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "ranska" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "heprea" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "unkari" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "italia" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "japani" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "korea" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "hollanti" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "norja" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "puola" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "portugali" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "portugali (Brasilia)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "venäjä" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "slovenia" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "ruotsi" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "thai" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "turkki" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "vietnam" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "Virheellinen valinta" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Nimi" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Palvelinvirhe" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Täytyy olla kelvollinen luku" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Valitse valuutta käytettävissä olevista vaihtoehdoista" msgid "Username" msgstr "Käyttäjätunnus" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Etunimi" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Sukunimi" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "Aktiivinen" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Virheellinen arvo" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Datatiedosto" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Valitse lähetettävä datatiedosto" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Tiedostotyyppiä ei tueta" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Tiedosto on liian suuri" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Datarivejä ei annettu" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Datasarakkeita ei annettu" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Vaadittu sarake puuttuu: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikaatti sarake: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "Kuvatiedoston URL" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Kuvien lataaminen ei ole käytössä" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "Saatavilla" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Saatavilla" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "Ulkoinen linkki" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Linkki ulkoiseen URLiin" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "Määrä" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "Varastotuote" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "Seurattavissa" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "päivää" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Näytä uutiset" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Näytä uutiset kotisivulla" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Käyttäjä" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "Hinta" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Salaisuus" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "Isäntä" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Otsikko" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Otsikko" msgid "Link" msgstr "Linkki" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Julkaistu" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Julkaisija" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Yhteenveto" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "Kuva" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Kuvatiedosto" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Liite" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Puuttuva tiedosto" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Puuttuva ulkoinen linkki" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Valitse liitettävä tiedosto" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentti" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Avain" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Tiedostonimi" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "Muistiinpano" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "Päivämäärä" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "Muut merkinnät" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Raportti" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Käytössä" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po index fd001b934c..b8657d8154 100644 --- a/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/fr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -65,9 +65,9 @@ msgstr "Entrer la date" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Le serveur distant a renvoyé une réponse vide" msgid "Supplied URL is not a valid image file" msgstr "L'URL fournie n'est pas un fichier image valide" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabe" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgare" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tchèque" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danois" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Allemand" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grec" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Anglais" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Espagnol" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Espagnol (Mexique)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estonien" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Perse" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finnois" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Français" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hébreu" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Hongrois" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italien" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonais" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coréen" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Letton" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Néerlandais" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norvégien" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polonais" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugais" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugais (Brésilien)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Roumain" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russe" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovaque" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovénien" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbe" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Suédois" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thaïlandais" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turc" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrainien" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamien" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chinois (Simplifié)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chinois (Traditionnel)" @@ -364,7 +368,7 @@ msgstr "Chinois (Traditionnel)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Se connecter à l'application" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Les noms dupliqués ne peuvent pas exister sous le même parent" msgid "Invalid choice" msgstr "Choix invalide" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Nom" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Erreur serveur" msgid "An error has been logged by the server." msgstr "Une erreur a été loguée par le serveur." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Doit être un nombre valide" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Sélectionnez la devise à partir des options disponibles" msgid "Username" msgstr "Nom d'utilisateur" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Prénom" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Prénom de l'utilisateur" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Nom" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Nom de famille de l'utilisateur" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Adresse e-mail de l'utilisateur" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Staff" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Cet utilisateur a-t-il les permissions du staff" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Super-utilisateur" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Cet utilisateur est-il un super-utilisateur" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Cet utilisateur est-il un super-utilisateur" msgid "Active" msgstr "Actif" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Ce compte d'utilisateur est-il actif" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Vous n'avez pas la permission de modifier ce rôle utilisateur." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Seuls les super-utilisateurs peuvent créer de nouveaux utilisateurs" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Votre compte a été créé." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Veuillez utiliser la fonction de réinitialisation du mot de passe pour vous connecter" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Bienvenue dans InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Valeur non valide" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Fichier de données" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Sélectionnez le fichier de données à envoyer" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Format de fichier non supporté" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Fichier trop volumineux" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Pas de colonnes trouvées dans le fichier" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Par de lignes de données trouvées dans le fichier" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Pas de lignes de données fournies" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Pas de colonne de données fournie" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Colonne requise manquante : {name}" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Colonne duliquée : '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Images distantes" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL du fichier image distant" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Le téléchargement des images depuis une URL distante n'est pas activé" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "La construction doit être annulée avant de pouvoir être supprimée" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "La construction doit être annulée avant de pouvoir être supprimée" msgid "Consumable" msgstr "Consommable" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Allouée" msgid "Available" msgstr "Disponible" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Disponible" msgid "Build Order" msgstr "Ordre de Fabrication" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Référence de l' Ordre de Fabrication" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "BuildOrder associé a cette fabrication" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Utilisateur ou groupe responsable de cet ordre de construction" msgid "External Link" msgstr "Lien Externe" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Lien vers une url externe" @@ -1110,7 +1114,7 @@ msgstr "La commande de construction {build} a été effectuée" msgid "A build order has been completed" msgstr "Une commande de construction a été effectuée" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Pas d'ordre de production défini" @@ -1122,37 +1126,37 @@ msgstr "L'ordre de production a déjà été réalisé" msgid "Build output does not match Build Order" msgstr "L'ordre de production de correspond pas à l'ordre de commande" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "La quantité doit être supérieure à zéro" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "La quantité ne peut pas être supérieure à la quantité de sortie" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "La sortie de compilation {serial} n'a pas réussi tous les tests requis" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Création de l'objet" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Création de l'objet" msgid "Quantity" msgstr "Quantité" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Quantité requise pour la commande de construction" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantité allouée ({q}) ne doit pas excéder la quantité disponible ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "L'article de stock est suralloué" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "La quantité allouée doit être supérieure à zéro" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "La quantité doit être de 1 pour stock sérialisé" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "L'article de stock sélectionné ne correspond pas à la ligne BOM" msgid "Stock Item" msgstr "Article en stock" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Stock d'origine de l'article" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Quantité de stock à allouer à la construction" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Installer dans" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Stock de destination de l'article" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Nom de l'article" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Conditionnement" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID de composant" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "Traçable" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Article du BOM" @@ -2145,19 +2149,19 @@ msgstr "Sorties incomplètes" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "L'utilisateur n'a pas les permissions de supprimer cette pièce jointe" @@ -2350,7 +2354,7 @@ msgstr "Fréquence de mise à jour des taux de change (définir à zéro pour d #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "jours" @@ -2578,7 +2582,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Autoriser les plugins à répondre aux évènements internes" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Activer les codes projet" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Fonctionnalité d'inventaire" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Activer la fonctionnalité d'inventaire pour enregistrer les niveaux de stock et le calcul de la valeur du stock" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Période de l'inventaire automatique" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Nombre de jours entre l'enregistrement automatique des stocks (définir à zéro pour désactiver)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Les rapports d'inventaire seront supprimés après le nombre de jours spécifié" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Clé du paramètre (doit être unique - insensible à la casse)" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Afficher les composants suivis" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Afficher les composants suivis sur l'écran d'accueil" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Afficher les catégories suivies" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Afficher les catégories de pièces suivies sur la page d'accueil" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Afficher les dernières pièces" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Afficher les derniers composants sur la page d'accueil" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Afficher les listes de matériaux en attente de validation sur la page d'accueil" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Afficher les dernières modifications du stock" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Afficher les articles de stock récemment modifiés sur la page d'accueil" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Afficher le stock faible" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Afficher les articles en stock bas sur la page d'accueil" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Afficher le stock épuisé" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Afficher les stocks épuisés sur la page d'accueil" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Afficher le stock nécessaire" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Afficher les pièces en stock nécessaires pour les assemblages sur la page d'accueil" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Afficher le stock expiré" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Afficher les pièces en stock expirées sur la page d'accueil" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Afficher le stock périmé" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Afficher les articles de stock périmés sur la page d'accueil" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Afficher les constructions en attente" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Afficher les constructions en attente sur la page d'accueil" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Afficher les constructions en retard" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Afficher les constructions en retard sur la page d'accueil" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Afficher les commandes en suspens" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Afficher les commandes en suspens sur la page d'accueil" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Afficher les commandes en retard" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Afficher les commandes en retard sur la page d'accueil" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Afficher les envois en suspens" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Afficher les envois en suspens sur la page d'accueil" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Afficher les envois en retard" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Afficher les envois en retard sur la page d'accueil" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Afficher les nouvelles" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Afficher les nouvelles sur la page d'accueil" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Affichage du libellé en ligne" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Afficher les étiquettes PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Imprimante d'étiquettes par défaut" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Configurer quelle imprimante d'étiquette doit être sélectionnée par défaut" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Affichage du rapport en ligne" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Afficher les rapports PDF dans le navigateur, au lieu de les télécharger en tant que fichier" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Rechercher de pièces" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Afficher les pièces dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Recherche du fournisseur de pièces" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Afficher les pièces du fournisseur dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Rechercher les pièces du fabricant" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Afficher les pièces du fabricant dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Masquer les pièces inactives" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Exclure les pièces inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Rechercher des catégories" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Afficher les catégories de pièces dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Rechercher dans le stock" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Afficher les pièces en stock dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Cacher les pièces indisponibles" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Exclure les articles en stock qui ne sont pas disponibles de la fenêtre de prévisualisation de recherche" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Chercher des Emplacements" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Afficher les emplacements dans la fenêtre d'aperçu de la recherche" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Rechercher les entreprises" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Afficher les entreprises dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Rechercher les commandes de construction" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Afficher les commandes de construction dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Rechercher des bons de commande" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de recherche" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Exclure les bons de commande inactifs" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "Exclure les commandes d’achat inactives de la fenêtre de prévisualisation de recherche" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Rechercher les bons de commande" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "Afficher les bons de commande dans la fenêtre de prévisualisation de la recherche" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "Exclure les bons de commande inactives" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "Exclure les bons de commande inactifs de la fenêtre de prévisualisation de recherche" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Rechercher les commandes retournées" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Résultats de l'aperçu de la recherche" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "Nombre de résultats à afficher dans chaque section de la fenêtre de prévisualisation de recherche" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Recherche Regex" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Afficher la quantité dans les formulaires" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Afficher la quantité disponible dans certains formulaires" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "La touche Echap ferme les formulaires" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "Utilisez la touche Echap pour fermer les formulaires modaux" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Barre de navigation fixe" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "La position de la barre de navigation est fixée en haut de l'écran" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Format de date" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Format préféré pour l'affichage des dates" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planification des pièces" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "Afficher les informations de planification des pièces" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventaire des pièces" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "Longueur de la chaîne dans les Tableau" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "Longueur maximale des chaînes affichées dans les tableaux" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Utilisateur" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "Prix" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "Ce webhook (lien de rappel HTTP) est-il actif" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "Jeton" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Jeton d'accès" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Confidentiel" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "ID message" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Identifiant unique pour ce message" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "Hôte" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Hôte à partir duquel ce message a été reçu" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Entête" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "En-tête de ce message" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Corps" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Corps de ce message" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "Endpoint à partir duquel ce message a été reçu" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "Le travail sur ce message est-il terminé ?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "Id" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titre" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Titre" msgid "Link" msgstr "Lien" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Publié" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Auteur" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Résumé" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Lu" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "Cette nouvelle a-t-elle été lue ?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "Cette nouvelle a-t-elle été lue ?" msgid "Image" msgstr "Image" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Fichier image" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbole" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "Symbole d'unité facultatif" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Définition" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "Définition de l'unité" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Pièce jointe" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Fichier manquant" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Lien externe manquant" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Commentaire" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "Erreur déclenchée par le plugin" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "En cours d'exécution" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "Tâches en attente" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Tâches planifiées" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "Tâches échouées" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "ID de la tâche" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "ID unique de la tâche" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "Verrouillé" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Heure verrouillé" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Nom de la tâche" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Fonction" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Nom de la fonction" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Arguments" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Arguments tâche" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "Mots-clés Arguments" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "Mots-clés arguments tâche" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Nom du fichier" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Nom du paramètre" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Valeur du paramètre" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "Description de la pièce du fournisseur" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "Description de la pièce du fournisseur" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "coût de base" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Frais minimums (par exemple frais de stock)" @@ -4618,7 +4630,7 @@ msgstr "Nombre de paquet" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "plusieurs" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "Données" @@ -6557,12 +6569,12 @@ msgstr "Utilisé pour" msgid "Building" msgstr "Construction" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Coût minimal" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Coût maximal" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Stock total" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Catégorie de composant" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Nom de l'article" @@ -7006,159 +7018,159 @@ msgstr "Propriétaire responsable de cette pièce" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Ventes multiples" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "Coût minimum de vente" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "Notes additionnelles" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nom de test" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Activé" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Requis" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Valeur requise" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valeur par Défaut" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Surplus" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Validée" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "Aucun objet valide n'a été fourni au modèle" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Résultat" @@ -9892,7 +9960,7 @@ msgstr "La quantité ne correspond pas au nombre de numéros de série" msgid "Serial numbers already exist" msgstr "Les numéros de série existent déjà" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po index 348a14aba4..923857c3b8 100644 --- a/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/he/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -65,9 +65,9 @@ msgstr "הזן תאריך סיום" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "גרמנית" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "יוונית" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "אנגלית" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "ספרדית" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "ספרדית (מקסיקנית)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "צרפתית" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "עברית" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "איטלקית" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "יפנית" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "קוריאנית" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "הולנדית" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "נורווגית" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "פולנית" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "רוסית" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "שוודית" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "תאילנדית" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "טורקית" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "ווייטנאמית" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "בחירה שגויה" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "שם" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "המספר חייב להיות תקין" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "קישור חיצוני" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "כמות" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "משתמש" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "קישור" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "קובץ מצורף" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "קובץ חסר" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "חסר קישור חיצוני" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "בחר קובץ לצירוף" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "הערה" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "שם קובץ" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po index 6627bf800a..a7b9aaef4c 100644 --- a/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Language: hi_IN\n" @@ -65,9 +65,9 @@ msgstr "तारीख दर्ज करें" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po index abb0742287..af3c46660b 100644 --- a/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/hu/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -65,9 +65,9 @@ msgstr "Dátum megadása" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "A kiszolgáló üres választ adott" msgid "Supplied URL is not a valid image file" msgstr "A megadott URL nem egy érvényes kép fájl" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arab" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bolgár" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Cseh" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dán" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Német" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Görög" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angol" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanyol (Mexikói)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Észt" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Fárszi/Perzsa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finn" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francia" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Héber" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Magyar" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Olasz" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japán" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreai" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Litván" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holland" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norvég" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Lengyel" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugál" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugál (Brazíliai)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Román" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Orosz" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Szlovák" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Szlovén" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Szerb" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svéd" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tháj" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Török" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrán" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnámi" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kínai (egyszerűsített)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kínai (Hagyományos)" @@ -364,7 +368,7 @@ msgstr "Kínai (Hagyományos)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Bejelentkezés" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Duplikált nevek nem lehetnek ugyanazon szülő alatt" msgid "Invalid choice" msgstr "Érvénytelen választás" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Név" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Kiszolgálóhiba" msgid "An error has been logged by the server." msgstr "A kiszolgáló egy hibaüzenetet rögzített." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Érvényes számnak kell lennie" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Válassz pénznemet a lehetőségek közül" msgid "Username" msgstr "Felhasználónév" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Keresztnév" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "A felhasználó keresztneve" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Vezetéknév" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "A felhasználó vezetékneve" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "A felhasználó e-mail címe" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Személyzet" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Van-e a felhasználónak személyzeti jogosultsága" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Rendszergazda" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "A felhasználó rendszergazda-e" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "A felhasználó rendszergazda-e" msgid "Active" msgstr "Aktív" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Aktív a felhasználói fiók" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Önnek nincs joga változtatni ezen a felhasználói szerepkörön." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Csak a superuser-ek hozhatnak létre felhasználókat" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "A fiókod sikeresen létrejött." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Kérlek használd a jelszó visszállítás funkciót a belépéshez" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Üdvözlet az InvenTree-ben" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Érvénytelen érték" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Adat fájl" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Fájl kiválasztása feltöltéshez" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Nem támogatott fájltípus" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Fájl túl nagy" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Nem találhatók oszlopok a fájlban" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Nincsenek adatsorok a fájlban" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Nincs adatsor megadva" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Nincs adat oszlop megadva" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Szükséges oszlop hiányzik: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplikált oszlop: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Távoli kép" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "A távoli kép URL-je" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Képek letöltése távoli URL-ről nem engedélyezett" @@ -759,7 +763,7 @@ msgstr "Hozzárendelve" msgid "Build must be cancelled before it can be deleted" msgstr "A gyártást be kell fejezni a törlés előtt" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "A gyártást be kell fejezni a törlés előtt" msgid "Consumable" msgstr "Fogyóeszköz" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Lefoglalva" msgid "Available" msgstr "Elérhető" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Elérhető" msgid "Build Order" msgstr "Gyártási utasítás" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Gyártási utasítás azonosító" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Gyártás, amihez ez a gyártás hozzá van rendelve" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Felhasználó vagy csoport aki felelős ezért a gyártásért" msgid "External Link" msgstr "Külső link" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Link külső URL-re" @@ -1110,7 +1114,7 @@ msgstr "A {build} gyártási utasítás elkészült" msgid "A build order has been completed" msgstr "Gyártási utasítás elkészült" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Nincs gyártási kimenet megadva" @@ -1122,37 +1126,37 @@ msgstr "Gyártási kimenet már kész" msgid "Build output does not match Build Order" msgstr "Gyártási kimenet nem egyezik a gyártási utasítással" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Mennyiségnek nullánál többnek kell lennie" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "A mennyiség nem lehet több mint a gyártási mennyiség" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "A {serial} gyártási kimenet nem felelt meg az összes kötelező teszten" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "Gyártási Rendelés Sor Tétel" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Gyártás objektum" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Gyártás objektum" msgid "Quantity" msgstr "Mennyiség" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Gyártáshoz szükséges mennyiség" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Gyártási tételnek meg kell adnia a gyártási kimenetet, mivel a fő darab egyedi követésre kötelezett" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "A lefoglalt mennyiség ({q}) nem lépheti túl a szabad készletet ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Készlet túlfoglalva" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Lefoglalt mennyiségnek nullánál többnek kell lennie" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Egyedi követésre kötelezett tételeknél a menyiség 1 kell legyen" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "A készlet tétel nem egyezik az alkatrészjegyzékkel" msgid "Stock Item" msgstr "Készlet tétel" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Forrás készlet tétel" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Készlet mennyiség amit foglaljunk a gyártáshoz" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Beépítés ebbe" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Cél készlet tétel" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "Gyártási Szint" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Alkatrész neve" @@ -1601,12 +1605,12 @@ msgid "Packaging" msgstr "Csomagolás" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Alkatrész ID" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "Alkatrész IPN" @@ -1668,13 +1672,13 @@ msgstr "Követésre kötelezett" msgid "Inherited" msgstr "Örökölt" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Változatok" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Alkatrészjegyzék tétel" @@ -2146,19 +2150,19 @@ msgstr "Befejezetlen kimenetek" msgid "Test Statistics" msgstr "Ellenőrzési Statisztika" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "Ez egy hivatkozás" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "Ez egy állomány" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "A felhasználó nem jogosult ezen mellékletek törlésére" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "A felhasználó nem jogosult ezen melléklet törlésére" @@ -2351,7 +2355,7 @@ msgstr "Milyen gyakran frissítse az árfolyamokat (nulla a kikapcsoláshoz)" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "nap" @@ -2579,7 +2583,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3248,488 +3252,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Belső eseményekre reagálás engedélyezése a pluginok számára" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Projektszámok engedélyezése" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "Projektszámok használatának engedélyezése a projektek követéséhez" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Leltár funkció" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Leltár funkció engedélyezése a készlet mennyiség és érték számításhoz" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "Külső helyek nélkül" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Külső helyek figyelmen kívül hagyása a leltár számításoknál" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Automatikus leltár időpontja" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Hány naponta történjen automatikus leltár (nulla egyenlő tiltva)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "Riport törlési gyakoriság" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Régi leltár riportok törlése hány naponta történjen" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "Felhasználók teljes nevének megjelenítése" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "Felhasználói név helyett a felhasználók teljes neve jelenik meg" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "Teszt állomás adatok engedélyezése" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "Tesztállomás adatok gyűjtésének teszt eredménybe gyűjtésének engedélyezése" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Beállítások kulcs (egyedinek kell lennie, nem kis- nagybetű érzékeny" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Nem aktív alkatrészek elrejtése a kezdőlapon" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Értesítésre beállított alkatrészek megjelenítése" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Alkatrész értesítések megjelenítése a főoldalon" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Értesítésre beállított kategóriák megjelenítése" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Alkatrész kategória értesítések megjelenítése a főoldalon" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Legújabb alkatrészek megjelenítése" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Legújabb alkatrészek megjelenítése a főoldalon" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "Hibás alkatrészjegyzékek megjelenítése" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Jóváhagyásra váró alkatrészjegyzékek megjelenítése a főoldalon" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Legfrissebb készlet változások megjelenítése" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Legutóbb megváltozott alkatrészek megjelenítése a főoldalon" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Alacsony készlet megjelenítése" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Alacsony készletek megjelenítése a főoldalon" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Kimerült készlet megjelenítése" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Kimerült készletek megjelenítése a főoldalon" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Gyártáshoz szükséges készlet megjelenítése" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Gyártáshoz szükséges készletek megjelenítése a főoldalon" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Lejárt készlet megjelenítése" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Lejárt készletek megjelenítése a főoldalon" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Állott készlet megjelenítése" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Álló készletek megjelenítése a főoldalon" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Függő gyártások megjelenítése" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Folyamatban lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Késésben lévő gyártások megjelenítése" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Késésben lévő gyártások megjelenítése a főoldalon" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Kintlévő beszerzési rendelések megjelenítése" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Kintlévő beszerzési rendelések megjelenítése a főoldalon" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Késésben lévő megrendelések megjelenítése" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Késésben lévő megrendelések megjelenítése a főoldalon" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Függő vevői rendelések megjelenítése" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Függő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Késésben lévő vevői rendelések megjelenítése" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Késésben lévő vevői rendelések megjelenítése a főoldalon" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "Függő vevői szállítmányok megjelenítése" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "Folyamatban lévő vevői szállítmányok megjelenítése a főoldalon" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Hírek megjelenítése" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Hírek megjelenítése a főoldalon" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Beágyazott címke megjelenítés" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF címkék megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Alapértelmezett címkenyomtató" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Melyik címkenyomtató legyen az alapértelmezett" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Beágyazott riport megjelenítés" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF riport megjelenítése a böngészőben letöltés helyett" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Alkatrészek keresése" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Beszállítói alkatrészek keresése" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Beszállítói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Gyártói alkatrészek keresése" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Gyártói alkatrészek megjelenítése a keresési előnézetben" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Inaktív alkatrészek elrejtése" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Inaktív alkatrészek kihagyása a keresési előnézet találataiból" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Kategóriák keresése" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Alkatrész kategóriák megjelenítése a keresési előnézetben" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Készlet keresése" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Készlet tételek megjelenítése a keresési előnézetben" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Nem elérhető készlet tételek elrejtése" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Nem elérhető készlet kihagyása a keresési előnézet találataiból" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Helyek keresése" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Készlet helyek megjelenítése a keresési előnézetben" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Cégek keresése" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Cégek megjelenítése a keresési előnézetben" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Gyártási utasítások keresése" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Gyártási utasítások megjelenítése a keresés előnézet ablakban" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Beszerzési rendelések keresése" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "Beszerzési rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Inaktív beszerzési rendelések kihagyása" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inaktív beszerzési rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Vevői rendelések keresése" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "Vevői rendelések megjelenítése a keresési előnézetben" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "Inaktív vevői rendelések kihagyása" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "Inaktív vevői rendelések kihagyása a keresési előnézet találataiból" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Visszavétel keresése" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "Visszavételek megjelenítése a keresés előnézet ablakban" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "Inaktív visszavételek kihagyása" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "Inaktív visszavételek kihagyása a keresési előnézet találataiból" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Keresési előnézet eredményei" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "A keresési előnézetben megjelenítendő eredmények száma szekciónként" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Regex keresés" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "Reguláris kifejezések engedélyezése a keresésekben" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "Teljes szó keresés" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "A keresések csak teljes szóra egyező találatokat adjanak" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Mennyiség megjelenítése a formokon" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Rendelkezésre álló alkatrész mennyiség megjelenítése néhány formon" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "ESC billentyű zárja be a formot" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "ESC billentyű használata a modális formok bezárásához" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Rögzített menüsor" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "A menü pozíciója mindig rögzítve a lap tetején" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Dátum formátum" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Preferált dátum formátum a dátumok kijelzésekor" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Alkatrész ütemezés" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "Alkatrész ütemezési információk megjelenítése" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Alkatrész leltár" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Alkatrész leltár információk megjelenítése (ha a leltár funkció engedélyezett)" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "Táblázati szöveg hossz" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "Maximális szöveg hossz ami megjelenhet a táblázatokban" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "Hibariportok fogadása" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "Értesítések fogadása a rendszerhibákról" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "Utoljára használt nyomtató gépek" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "Az utoljára használt nyomtató tárolása a felhasználóhoz" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Felhasználó" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "Ársáv mennyiség" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3737,96 +3749,96 @@ msgstr "Ársáv mennyiség" msgid "Price" msgstr "Ár" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "Egységár egy meghatározott mennyiség esetén" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Végpont" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "Végpont ahol ez a webhook érkezik" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "Webhook neve" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "Aktív-e ez a webhook" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "Token" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Token a hozzáféréshez" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Titok" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Megosztott titok a HMAC-hoz" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "Üzenet azonosító" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Egyedi azonosító ehhez az üzenethez" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "Kiszolgáló" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Kiszolgáló ahonnan ez az üzenet érkezett" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Fejléc" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Üzenet fejléce" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Törzs" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Üzenet törzse" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "Végpont amin ez az üzenet érkezett" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Dolgozott rajta" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "Befejeződött a munka ezzel az üzenettel?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "Azonosító" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Cím" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3843,28 +3855,28 @@ msgstr "Cím" msgid "Link" msgstr "Link" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Közzétéve" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Szerző" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Összefoglaló" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Elolvasva" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "Elolvasva?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3874,186 +3886,186 @@ msgstr "Elolvasva?" msgid "Image" msgstr "Kép" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Képfájl" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "A képhez tartozó model típus" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "A képhez tartozó model azonosító" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "Egyedi mértékegység" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "A mértékegység szimbólumának egyedinek kell lennie" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "A mértékegységnek valós azonosítónak kell lennie" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "Egység neve" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Szimbólum" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "Opcionális mértékegység szimbólum" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definíció" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "Mértékegység definíció" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Melléklet" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Hiányzó fájl" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Hiányzó külső link" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Válaszd ki a mellekelni kívánt fájlt" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Megjegyzés" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "Melléklet megjegyzés" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "Feltöltés dátuma" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "A fájl feltöltésének dátuma" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "Fájl mérete" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "Fájlméret bájtban" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "A melléklet model típusa érvénytelen" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Kulcs" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "A model adatbázisba tárolandó érték" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "Az állapot neve" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "Címke" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "A felületen megjelenített címke" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "Szín" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "A felöleten megjelenő szín" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "Logikai kulcs" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "Az állapot logikai kulcsa amely megegyezik az üzleti logika egyedi állapotával" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "Model" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "A Model amihez ez az állapot tartozik" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "Hivatkozott Állapot Készlet" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "Az az Állapot készlet, melyet ez az egyedi állapot kibővít" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "Egyedi Állapot" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "Egyedi Állapotok" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "Modelt választani kötelező" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "Kulcsot választani kötelező" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "Logikai kulcsot választani kötelező" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "A kulcs és a logikai kulcs nem lehet azonos" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "Kötelező kiválasztani a bővítendő állapotot" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "A hivatkozott állapot nem található" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "A kulcsnak eltérőnek kell lennie a hivatkozott állapotok logikai kulcsaitól" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "A logikai kulcsnak szerepelnie kell a hivatkozott állapotok logikai kulcsai közt" @@ -4091,75 +4103,75 @@ msgstr "Készlet érkezett vissza egy visszavétel miatt" msgid "Error raised by plugin" msgstr "Plugin hiba" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "Folyamatban" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "Folyamatban lévő feladatok" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Ütemezett Feladatok" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "Hibás feladatok" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "Feladat ID" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "Egyedi feladat ID" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "Zárol" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Zárolási idő" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Feladat neve" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Funkció" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Funkció neve" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Paraméterek" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Feladat paraméterei" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "Kulcsszó paraméterek" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "Feladat kulcsszó paraméterek" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Fájlnév" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "Modell típusa" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "A felhasználónak nincs joga létrehozni vagy módosítani ehhez a modelhez tartozó mellékleteket" @@ -4495,7 +4507,7 @@ msgid "Parameter name" msgstr "Paraméter neve" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4506,7 +4518,7 @@ msgid "Parameter value" msgstr "Paraméter értéke" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4581,7 +4593,7 @@ msgid "Supplier part description" msgstr "Beszállítói alkatrész leírása" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4593,11 +4605,11 @@ msgstr "Beszállítói alkatrész leírása" msgid "Note" msgstr "Megjegyzés" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "alap költség" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimális díj (pl. tárolási díj)" @@ -4619,7 +4631,7 @@ msgstr "Csomagolási mennyiség" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Egy csomagban kiszállítható mennyiség, hagyd üresen az egyedi tételeknél." -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "többszörös" @@ -5205,7 +5217,7 @@ msgstr "Sor száma" msgid "Original row data" msgstr "Eredeti sor adat" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "Adat" @@ -6558,12 +6570,12 @@ msgstr "Felhasználva ebben" msgid "Building" msgstr "Gyártásban" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Minimum költség" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Maximum költség" @@ -6709,7 +6721,7 @@ msgstr "Vannak Változatok" msgid "BOM Valid" msgstr "Alkatrészjegyzék ellenőrizve" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6745,7 +6757,7 @@ msgstr "Teljes készlet" msgid "Input quantity for price calculation" msgstr "Add meg a mennyiséget az árszámításhoz" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Alkatrész kategória" @@ -6868,7 +6880,7 @@ msgstr "Ilyen nevű, IPN-ű és reviziójú alkatrész már létezik." msgid "Parts cannot be assigned to structural part categories!" msgstr "Szerkezeti kategóriákhoz nem lehet alkatrészeket rendelni!" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Alkatrész neve" @@ -7007,159 +7019,159 @@ msgstr "Alkatrész felelőse" msgid "Last Stocktake" msgstr "Utolsó leltár" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Több értékesítése" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "Árszámítások gyorstárazásához használt pénznem" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "Minimum alkatrészjegyzék költség" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "Összetevők minimum költsége" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "Maximum alkatrészjegyzék költség" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "Összetevők maximum költsége" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "Minimum beszerzési ár" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "Eddigi minimum beszerzési költség" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "Maximum beszerzési ár" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "Eddigi maximum beszerzési költség" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "Minimum belső ár" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "Minimum költség a belső ársávok alapján" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "Maximum belső ár" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "Maximum költség a belső ársávok alapján" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "Minimum beszállítói ár" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "Minimum alkatrész ár a beszállítóktól" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "Maximum beszállítói ár" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "Maximum alkatrész ár a beszállítóktól" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "Minimum alkatrészváltozat ár" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "Alkatrészváltozatok számolt minimum költsége" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "Maximum alkatrészváltozat ár" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "Alkatrészváltozatok számolt maximum költsége" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "Minimum költség felülbírálása" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "Maximum költség felülbírálása" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "Számított általános minimum költség" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "Számított általános maximum költség" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "Minimum eladási ár" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "Minimum eladási ár az ársávok alapján" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "Maximum eladási ár" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "Maximum eladási ár az ársávok alapján" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "Minimum eladási költség" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "Eddigi minimum eladási ár" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "Maximum eladási költség" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "Eddigi maximum eladási ár" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "Leltározható alkatrész" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "Tételszám" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "Egyedi készlet tételek száma a leltárkor" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "Teljes készlet a leltárkor" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7171,363 +7183,363 @@ msgstr "Teljes készlet a leltárkor" msgid "Date" msgstr "Dátum" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "Leltározva ekkor" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "További megjegyzések" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "Leltározta" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "Minimum készlet érték" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "Becsült minimum raktárkészlet érték" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "Maximum készlet érték" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "Becsült maximum raktárkészlet érték" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Riport" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "Leltár riport fájl (generált)" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Alkatrész szám" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "Leltározott alkatrészek száma" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "Felhasználó aki a leltár riportot kérte" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "Alkatrész értékesítési ársáv" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "Alkatrész Teszt Sablon" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "Hibás sablon név - legalább egy alfanumerikus karakter kötelező" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "A lehetőségek egyediek kell legyenek" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "Teszt sablont csak ellenőrizhetőre beállított alkatrészhez lehet csinálni" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "Már létezik ilyen azonosítójú Teszt sablon ehhez az alkatrészhez" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Teszt név" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "Add meg a teszt nevét" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "Teszt azonosító" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "Egyszerűsített Teszt azonosító" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Teszt leírása" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "Adj hozzá egy leírást ehhez a teszthez" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Engedélyezve" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "Teszt engedélyezve?" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Kötelező" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "Szükséges-e hogy ez a teszt sikeres legyen?" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Kötelező érték" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően érték legyen rendelve?" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Kötelező melléklet" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "Szükséges-e hogy ennek a tesztnek az eredményéhez kötelezően fájl melléklet legyen rendelve?" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Lehetőségek" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "Választható lehetőségek ehhez a Teszthez (vesszővel elválasztva)" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "Alkatrész Paraméter Sablon" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "Jelölőnégyzet paraméternek nem lehet mértékegysége" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "Jelölőnégyzet paraméternek nem lehetnek választási lehetőségei" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "A paraméter sablon nevének egyedinek kell lennie" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "Paraméter neve" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "Paraméter mértékegysége" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "Paraméter leírása" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Jelölőnégyzet" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "Ez a paraméter egy jelölőnégyzet?" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "Választható lehetőségek (vesszővel elválasztva)" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "Alkatrész Paraméter" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "Lezárt alkatrész Paramétere nem szerkeszthető" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "Hibás választás a paraméterre" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "Szülő alkatrész" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Paraméter sablon" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Paraméter értéke" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "Alkatrészcsoport Paraméter Sablon" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Alapértelmezett érték" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "Alapértelmezett paraméter érték" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "Alkatrész ID vagy alkatrész név" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "Egyedi alkatrész ID értéke" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "Alkatrész IPN érték" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "Szint" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "Alkatrészjegyzék szint" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "Alkatrészjegyzék nem szerkeszthető mert az összeállítás le van zárva" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "Alkatrészjegyzék nem szerkeszthető mert az összeállítás változat le van zárva" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Szülő alkatrész kiválasztása" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "Al alkatrész" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "Válaszd ki az alkatrészjegyzékben használandó alkatrészt" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "Alkatrészjegyzék mennyiség ehhez az alkatrészjegyzék tételhez" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "Ez az alkatrészjegyzék tétel opcionális" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Ez az alkatrészjegyzék tétel fogyóeszköz (készlete nincs követve a gyártásban)" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Többlet" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Becsült gyártási veszteség (abszolút vagy százalékos)" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "Alkatrészjegyzék tétel azonosító" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "Alkatrészjegyzék tétel megjegyzései" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "Ellenőrző összeg" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "Alkatrészjegyzék sor ellenőrző összeg" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Jóváhagyva" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "Ez a BOM tétel jóvá lett hagyva" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Öröklődött" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Ezt az alkatrészjegyzék tételt az alkatrész változatok alkatrészjegyzékei is öröklik" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Alkatrészváltozatok készlet tételei használhatók ehhez az alkatrészjegyzék tételhez" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "A mennyiség egész szám kell legyen a követésre kötelezett alkatrészek esetén" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "Al alkatrészt kötelező megadni" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "Alkatrészjegyzék tétel helyettesítő" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "A helyettesítő alkatrész nem lehet ugyanaz mint a fő alkatrész" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "Szülő alkatrészjegyzék tétel" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "Helyettesítő alkatrész" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "1.rész" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "2.rész" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "Válassz kapcsolódó alkatrészt" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "Alkatrész kapcsolat nem hozható létre önmagával" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "Már létezik duplikált alkatrész kapcsolat" @@ -8594,7 +8606,7 @@ msgstr "Az alkatrész képe nem található" msgid "Part Pricing" msgstr "Alkatrész árak" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "Plugin nem törölhető mivel még aktív" @@ -9002,44 +9014,44 @@ msgstr "TME vonalkódok támogatása" msgid "The Supplier which acts as 'TME'" msgstr "A 'TME' beszállító" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "Csak a személyzeti felhasználók adminisztrálhatják a pluginokat" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "Plugin telepítés letiltva" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Plugin telepítése sikeres" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin telepítve ide: {path}" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "Ez a plugin nem található a tárolóban" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "A plugin nem egy csomagolt plugin" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "Plugin csomag neve nem található" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "Plugin eltávolítás letiltva" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "Plugin nem eltávolítható mivel még aktív" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "Plugin eltávolítása sikeres" @@ -9157,6 +9169,38 @@ msgstr "Minta árfolyamváltó plugin" msgid "InvenTree Contributors" msgstr "InvenTree fejlesztők" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "Forrás URL" @@ -9235,6 +9279,30 @@ msgstr "Konfiguráció törlése" msgid "Delete the plugin configuration from the database" msgstr "Plugin konfiguráció törlése az adatbázisból" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "Nincs érvényes objektum megadva a sablonhoz" @@ -9519,7 +9587,7 @@ msgstr "Teszt eredmények" msgid "Test" msgstr "Teszt" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Eredmény" @@ -9893,7 +9961,7 @@ msgstr "A mennyiség nem egyezik a megadott sorozatszámok számával" msgid "Serial numbers already exist" msgstr "A sorozatszámok már léteznek" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "Ez a Teszt sablon nem létezik" @@ -9941,67 +10009,67 @@ msgstr "Készlet tételek állapotainak egyeznie kell" msgid "StockItem cannot be moved as it is not in stock" msgstr "Készlet tétel nem mozgatható mivel nincs készleten" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "Készlettörténet" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "Bejegyzés megjegyzései" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "Készlet Tétel Ellenőrzés Eredménye" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "Ehhez a teszthez meg kell adni értéket" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "Ehhez a teszthez fel kell tölteni mellékletet" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "A teszt eredménye érvénytelen" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Teszt eredménye" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "Teszt kimeneti értéke" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "Teszt eredmény melléklet" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "Tesztek megjegyzései" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "Teszt állomás" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "A tesztet elvégző tesztállomás azonosítója" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "Elkezdődött" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "A teszt indításának időpontja" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "Befejezve" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "A teszt befejezésének időpontja" diff --git a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po index 9f7f9029a6..dcbb83f71a 100644 --- a/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/id/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -65,9 +65,9 @@ msgstr "Masukkan tanggal" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "URL yang diberikan bukan file gambar yang valid" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Bahasa Arab" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Ceko" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Denmark" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Jerman" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Yunani" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inggris" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanyol" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanyol (Meksiko)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persia" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Perancis" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Ibrani" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Hungaria" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Itali" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Jepang" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korea" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Belanda" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norwegia" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polandia" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugis" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugis (Brasil)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Rusia" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Swedia" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turki" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnam" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "Pilihan tidak valid" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Nama" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Terjadi Kesalahan Server" msgid "An error has been logged by the server." msgstr "Sebuah kesalahan telah dicatat oleh server." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Harus berupa angka yang valid" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "Nama Pengguna" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Nama Depan" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Nama depan dari pengguna" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Nama Belakang" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Nama belakang dari pengguna" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Alamat surel dari pengguna" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Staf" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "Aktif" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Selamat Datang di InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Nilai tidak valid" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "File data" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Pilih file untuk diunggah" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Jenis file tidak didukung" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Ukuran file terlalu besar" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Tidak ditemukan kolom dalam file" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Tidak ditemukan barisan data dalam file" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Tidak ada barisan data tersedia" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Tidak ada kolom data tersedia" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Kolom yang diperlukan kurang: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Kolom duplikat: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL file gambar external" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Unduhan gambar dari URL external tidak aktif" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Pesanan harus dibatalkan sebelum dapat dihapus" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Pesanan harus dibatalkan sebelum dapat dihapus" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "Tersedia" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Tersedia" msgid "Build Order" msgstr "Order Produksi" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Referensi Order Produksi" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Produksi induk dari produksi ini" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "Tautan eksternal" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Tautan menuju URL eksternal" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Tidak ada hasil produksi yang ditentukan" @@ -1122,37 +1126,37 @@ msgstr "Hasil produksi sudah selesai" msgid "Build output does not match Build Order" msgstr "Hasil produksi tidak sesuai dengan order produksi" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Jumlah harus lebih besar daripada nol" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "Jumlah" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item produksi harus menentukan hasil produksi karena bagian utama telah ditandai sebagai dapat dilacak" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Item stok teralokasikan terlalu banyak" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Jumlah yang dialokasikan harus lebih dari nol" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Jumlah harus 1 untuk stok dengan nomor seri" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "Stok Item" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Sumber stok item" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Jumlah stok yang dialokasikan ke produksi" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Pasang ke" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Tujuan stok item" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Item tagihan material" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "Hari" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Cari barang" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Cari Persediaan" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Cari Lokasi" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Cari Perusahaan" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Pengguna" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "Harga" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Judul" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Judul" msgid "Link" msgstr "Tautan" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Kesimpulan" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Berkas Gambar" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Lampiran" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "File tidak ditemukan" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Tautan eksternal tidak ditemukan" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Pilih file untuk dilampirkan" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "Ukuran Berkas" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "Label" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "Model" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Nama File" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "Tanggal" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Lapor" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Aktif" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Pilihan" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "Kontributor InvenTree" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "Lampiran perlu diunggah untuk tes ini" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po index 84d370ceb5..9351debb7c 100644 --- a/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/it/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -65,9 +65,9 @@ msgstr "Inserisci la data" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -126,7 +126,7 @@ msgstr "È necessario digitare la stessa e-mail ogni volta." #: InvenTree/forms.py:221 msgid "MFA Registration is disabled." -msgstr "" +msgstr "La registrazione MFA è disabilitata." #: InvenTree/forms.py:259 InvenTree/forms.py:267 msgid "The provided primary email address is not valid." @@ -211,151 +211,155 @@ msgstr "Il server remoto ha restituito una risposta vuota" msgid "Supplied URL is not a valid image file" msgstr "L'URL fornito non è un file immagine valido" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabo" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgaro" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Ceco" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danese" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tedesco" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Greco" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglese" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spagnolo (Messicano)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estone" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persiano" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finlandese" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francese" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungherese" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiano" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coreano" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Lettone" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Olandese" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polacco" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portoghese" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portoghese (Brasile)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumeno" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russo" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovacco" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Sloveno" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbo" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svedese" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailandese" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turco" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ucraino" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Cinese (Semplificato)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Cinese (Tradizionale)" @@ -364,7 +368,7 @@ msgstr "Cinese (Tradizionale)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Accedi all'app" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Nomi duplicati non possono esistere sotto lo stesso genitore" msgid "Invalid choice" msgstr "Scelta non valida" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Nome" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Errore del server" msgid "An error has been logged by the server." msgstr "Un errore è stato loggato dal server." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Deve essere un numero valido" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Selezionare la valuta dalle opzioni disponibili" msgid "Username" msgstr "Nome utente" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Nome" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Nome dell'utente" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Cognome" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Cognome dell'utente" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Indirizzo email dell'utente" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Staff" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Questo utente ha i permessi dello staff" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Superuser" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Questo utente è un superutente" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Questo utente è un superutente" msgid "Active" msgstr "Attivo" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Questo account utente è attivo" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Non hai i permessi per cambiare il ruolo dell'utente." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Solo i superutenti possono creare nuovi utenti" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Il tuo account è stato creato." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Si prega di utilizzare la funzione di reset password per accedere" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Benvenuto in InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Valore non valido" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "File dati" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Seleziona un file per il caricamento" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Formato file non supportato" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "File troppo grande" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Nessun colonna trovata nel file" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Nessuna riga di dati trovata nel file" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Nessun dato fornito" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Nessuna colonna di dati fornita" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Colonna richiesta mancante: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Colonna duplicata: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Immagine Remota" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL del file immagine remota" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Il download delle immagini da URL remoto non è abilitato" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "La produzione deve essere annullata prima di poter essere eliminata" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "La produzione deve essere annullata prima di poter essere eliminata" msgid "Consumable" msgstr "Consumabile" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Allocato" msgid "Available" msgstr "Disponibile" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Disponibile" msgid "Build Order" msgstr "Ordine di Produzione" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Riferimento Ordine Di Produzione" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Ordine di produzione a cui questa produzione viene assegnata" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Utente o gruppo responsabile di questo ordine di produzione" msgid "External Link" msgstr "Collegamento esterno" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Link a URL esterno" @@ -1110,7 +1114,7 @@ msgstr "L'ordine di produzione {build} è stato completato" msgid "A build order has been completed" msgstr "L'ordine di produzione è stato completato" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Nessun output di produzione specificato" @@ -1122,37 +1126,37 @@ msgstr "La produzione è stata completata" msgid "Build output does not match Build Order" msgstr "L'output della produzione non corrisponde all'ordine di compilazione" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "La quantità deve essere maggiore di zero" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "La quantità non può essere maggiore della quantità in uscita" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Crea oggetto" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Crea oggetto" msgid "Quantity" msgstr "Quantità" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Quantità richiesta per l'ordine di costruzione" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "L'elemento di compilazione deve specificare un output poiché la parte principale è contrassegnata come rintracciabile" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "L'articolo in giacenza è sovrallocato" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "La quantità di assegnazione deve essere maggiore di zero" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "La quantità deve essere 1 per lo stock serializzato" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "L'articolo in stock selezionato non corrisponde alla voce nella BOM" msgid "Stock Item" msgstr "Articoli in magazzino" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Origine giacenza articolo" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Quantità di magazzino da assegnare per la produzione" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Installa in" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Destinazione articolo in giacenza" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Nome Articolo" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Confezionamento" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Codice Articolo" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "IPN Articolo" @@ -1667,13 +1671,13 @@ msgstr "Tracciabile" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Consenti Le Varianti" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Distinta base (Bom)" @@ -2145,19 +2149,19 @@ msgstr "Output Incompleti" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "giorni" @@ -2578,7 +2582,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Abilita plugin per rispondere agli eventi interni" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 +msgid "Enable project codes" +msgstr "" + +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Funzionalità Dell'Inventario" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Abilita la funzionalità d'inventario per la registrazione dei livelli di magazzino e il calcolo del valore di magazzino" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Inventario periodico automatico" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Numero di giorni tra la registrazione automatica dell'inventario (imposta 0 per disabilitare)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "I rapporti d'inventario verranno eliminati dopo il numero specificato di giorni" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Mostra articoli sottoscritti" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Mostra gli articoli sottoscritti nella homepage" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Mostra le categorie sottoscritte" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Mostra le categorie dei componenti sottoscritti nella homepage" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Mostra ultimi articoli" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Mostra gli ultimi articoli sulla homepage" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Mostra le distinte base che attendono la convalida sulla homepage" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Mostra le modifiche recenti alle giacenze" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Mostra le giacenze modificate di recente nella homepage" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Mostra disponibilità scarsa delle giacenze" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Mostra disponibilità scarsa degli articoli sulla homepage" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Mostra scorte esaurite" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Mostra disponibilità scarsa delle scorte degli articoli sulla homepage" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Mostra scorte necessarie" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Mostra le scorte degli articoli necessari per la produzione sulla homepage" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Mostra scorte esaurite" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Mostra gli articoli stock scaduti nella home page" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Mostra scorte obsolete" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Mostra gli elementi obsoleti esistenti sulla home page" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Mostra produzioni in attesa" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Mostra produzioni in attesa sulla homepage" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Mostra produzioni in ritardo" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Mostra produzioni in ritardo sulla home page" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Mostra ordini di produzione inevasi" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Mostra ordini di produzione inevasi sulla home page" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Mostra Ordini di Produzione in ritardo" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Mostra Ordini di Produzione in ritardo sulla home page" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Mostra Ordini di Vendita inevasi" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Mostra Ordini di Vendita inevasi sulla home page" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Mostra Ordini di Vendita in ritardo" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Mostra Ordini di Vendita in ritardo sulla home page" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Mostra Notizie" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Mostra notizie sulla home page" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Stampante per etichette predefinita" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Configura quale stampante di etichette deve essere selezionata per impostazione predefinita" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Visualizzazione dell'etichetta in linea" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Cerca Articoli" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Mostra articoli della ricerca nella finestra di anteprima" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Mostra articoli del fornitore nella finestra di anteprima" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Cerca Articoli Produttore" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Mostra articoli del produttore nella finestra di anteprima" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Nascondi Articoli Inattivi" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Escludi articoli inattivi dalla finestra di anteprima della ricerca" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Cerca Categorie" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Mostra categorie articolo nella finestra di anteprima di ricerca" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Cerca Giacenze" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Mostra articoli in giacenza nella finestra di anteprima della ricerca" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Nascondi elementi non disponibili" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Escludi gli elementi stock che non sono disponibili dalla finestra di anteprima di ricerca" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Cerca Ubicazioni" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Mostra ubicazioni delle giacenze nella finestra di anteprima di ricerca" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Cerca Aziende" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Mostra le aziende nella finestra di anteprima di ricerca" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Cerca Ordini Di Produzione" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Mostra gli ordini di produzione nella finestra di anteprima di ricerca" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Cerca Ordini di Acquisto" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "Mostra gli ordini di acquisto nella finestra di anteprima di ricerca" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Escludi Ordini D'Acquisto Inattivi" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "Escludi ordini di acquisto inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Cerca Ordini Di Vendita" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "Visualizzazione degli ordini di vendita nella finestra di anteprima della ricerca" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "Escludi Ordini Di Vendita Inattivi" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "Escludi ordini di vendita inattivi dalla finestra di anteprima di ricerca" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Cerca Ordini Di Reso" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Risultati Dell'Anteprima Di Ricerca" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "Numero di risultati da visualizzare in ciascuna sezione della finestra di anteprima della ricerca" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Ricerca con regex" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Mostra quantità nei moduli" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Visualizzare la quantità di pezzi disponibili in alcuni moduli" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "Il tasto Esc chiude i moduli" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "Utilizzare il tasto Esc per chiudere i moduli modali" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Barra di navigazione fissa" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "La posizione della barra di navigazione è fissata nella parte superiore dello schermo" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Formato Data" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Formato predefinito per visualizzare le date" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Programmazione Prodotto" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "Mostra informazioni sulla pianificazione del prodotto" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Inventario Prodotto" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Visualizza le informazioni d'inventario dell'articolo (se la funzionalità d'inventario è abilitata)" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "Lunghezza Stringa Tabella" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Utente" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "Quantità prezzo limite" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "Quantità prezzo limite" msgid "Price" msgstr "Prezzo" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "Prezzo unitario in quantità specificata" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Scadenza" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "Scadenza in cui questa notifica viene ricevuta" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "Nome per questa notifica" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "È questa notifica attiva" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Token per l'accesso" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Segreto" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Segreto condiviso per HMAC" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "ID Messaggio" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Identificatore unico per questo messaggio" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Host da cui questo messaggio è stato ricevuto" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Intestazione" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Intestazione di questo messaggio" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Contenuto" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Contenuto di questo messaggio" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "Scadenza in cui questo messaggio è stato ricevuto" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Lavorato il" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "Il lavoro su questo messaggio è terminato?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titolo" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Titolo" msgid "Link" msgstr "Collegamento" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Pubblicato" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autore" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Riepilogo" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Letto" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "Queste notizie sull'elemento sono state lette?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "Queste notizie sull'elemento sono state lette?" msgid "Image" msgstr "Immagine" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "File immagine" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Allegato" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "File mancante" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Link esterno mancante" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Seleziona file da allegare" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Commento" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "Errore generato dal plugin" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Nome del file" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Nome parametro" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Valore del parametro" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "Descrizione articolo fornitore" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "Descrizione articolo fornitore" msgid "Note" msgstr "Nota" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "costo base" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Onere minimo (ad esempio tassa di stoccaggio)" @@ -4618,7 +4630,7 @@ msgstr "Quantità Confezione" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "multiplo" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "Dati" @@ -6557,12 +6569,12 @@ msgstr "Utilizzato In" msgid "Building" msgstr "In Costruzione" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Costo Minimo" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Costo Massimo" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Giacenze Totali" msgid "Input quantity for price calculation" msgstr "Digita la quantità per il calcolo del prezzo" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria Articoli" @@ -6867,7 +6879,7 @@ msgstr "Un articolo con questo Nome, IPN e Revisione esiste già." msgid "Parts cannot be assigned to structural part categories!" msgstr "Gli articoli non possono essere assegnati a categorie articolo principali!" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Nome articolo" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "Ultimo Inventario" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Vendita multipla" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "Valuta utilizzata per calcolare i prezzi" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "Costo Minimo Distinta Base" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "Costo minimo dei componenti dell'articolo" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "Costo Massimo Distinta Base" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "Costo massimo dei componenti dell'articolo" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "Importo Acquisto Minimo" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "Costo minimo di acquisto storico" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "Importo massimo acquisto" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "Costo massimo di acquisto storico" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "Prezzo Interno Minimo" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "Costo minimo basato su interruzioni di prezzo interne" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "Prezzo Interno Massimo" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "Costo massimo basato su interruzioni di prezzo interne" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "Prezzo Minimo Fornitore" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "Prezzo minimo articolo da fornitori esterni" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "Prezzo Massimo Fornitore" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "Prezzo massimo dell'articolo proveniente da fornitori esterni" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "Variazione di costo minimo" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "Costo minimo calcolato di variazione dell'articolo" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "Massima variazione di costo" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "Costo massimo calcolato di variazione dell'articolo" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "Costo minimo totale calcolato" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "Costo massimo totale calcolato" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "Prezzo Di Vendita Minimo" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "Prezzo minimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "Prezzo Di Vendita Massimo" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "Prezzo massimo di vendita basato sulle interruzioni di prezzo" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "Prezzo storico minimo di vendita" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "Costo Di Vendita Minimo" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "Prezzo storico massimo di vendita" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "Articolo per l'inventario" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "Contatore Elemento" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "Numero di scorte individuali al momento dell'inventario" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "Totale delle scorte disponibili al momento dell'inventario" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "Totale delle scorte disponibili al momento dell'inventario" msgid "Date" msgstr "Data" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "Data in cui è stato effettuato l'inventario" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "Note aggiuntive" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "Utente che ha eseguito questo inventario" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "Costo Minimo Scorta" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "Costo minimo stimato di magazzino a disposizione" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "Costo Massimo Scorte" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "Costo massimo stimato di magazzino a disposizione" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "File Report Inventario (generato internamente)" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Conteggio Articolo" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "Numero di articoli oggetto d'inventario" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "Utente che ha richiesto questo report inventario" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nome Test" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "Inserisci un nome per la prova" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Descrizione Di Prova" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "Inserisci descrizione per questa prova" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Abilitato" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Richiesto" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "Questa prova è necessaria per passare?" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Valore richiesto" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "Questa prova richiede un valore quando si aggiunge un risultato di prova?" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Allegato Richiesto" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "Questa prova richiede un file allegato quando si aggiunge un risultato di prova?" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "Il nome del modello del parametro deve essere univoco" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "Nome Parametro" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "Descrizione del parametro" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "Articolo principale" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Modello Parametro" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Valore del Parametro" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valore Predefinito" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "Valore Parametro Predefinito" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "ID articolo o nome articolo" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "Valore ID articolo univoco" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "Valore IPN articolo" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "Livello" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "Livello distinta base" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Seleziona articolo principale" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "Articolo subordinato" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "Seleziona l'articolo da utilizzare nella Distinta Base" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "Quantità Distinta Base per questo elemento Distinta Base" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "Questo elemento della Distinta Base è opzionale" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Questo elemento della Distinta Base è consumabile (non è tracciato negli ordini di produzione)" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Eccedenza" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantità stimata scarti di produzione (assoluta o percentuale)" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "Riferimento Elemento Distinta Base" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "Note Elemento Distinta Base" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "Codice di controllo" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "Codice di controllo Distinta Base" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Convalidato" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Questo elemento della Distinta Base viene ereditato dalle Distinte Base per gli articoli varianti" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Gli elementi in giacenza per gli articoli varianti possono essere utilizzati per questo elemento Distinta Base" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "La quantità deve essere un valore intero per gli articoli rintracciabili" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "L'articolo subordinato deve essere specificato" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "Elemento Distinta Base Sostituito" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "La parte sostituita non può essere la stessa dell'articolo principale" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "Elemento principale Distinta Base" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "Sostituisci l'Articolo" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "Articolo 1" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "Articolo 2" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "Seleziona Prodotto Relativo" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "Non si può creare una relazione tra l'articolo e sé stesso" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "La relazione duplicata esiste già" @@ -8593,7 +8605,7 @@ msgstr "Immagine articolo non trovata" msgid "Part Pricing" msgstr "Prezzo Articolo" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "URL di origine" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "Nessun oggetto valido fornito nel modello" @@ -9518,7 +9586,7 @@ msgstr "Risultati Test" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Risultato" @@ -9892,7 +9960,7 @@ msgstr "La quantità non corrisponde ai numeri di serie" msgid "Serial numbers already exist" msgstr "Numeri di serie già esistenti" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "I codici di stato dello stock devono corrispondere" msgid "StockItem cannot be moved as it is not in stock" msgstr "Le giacenze non possono essere spostate perché non disponibili" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "Note d'ingresso" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "Il valore deve essere fornito per questo test" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "L'allegato deve essere caricato per questo test" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Risultato Test" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "Test valore output" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "Risultato della prova allegato" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "Note del test" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po index 13540f47ff..0806b24216 100644 --- a/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ja/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -65,9 +65,9 @@ msgstr "日付を入力する" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "リモートサーバーが空のレスポンスを返しました" msgid "Supplied URL is not a valid image file" msgstr "指定されたURLは有効な画像ファイルではありません" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "チェコ語" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "ドイツ語" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "ギリシャ語" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "英語" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "スペイン語" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "スペイン語(メキシコ)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "フランス語" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "ヘブライ語" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "ヒンディー語" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "ハンガリー語" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "イタリア語" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "日本語" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "韓国語" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "オランダ語" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "ノルウェー語" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "ポルトガル語" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "ポルトガル語 (ブラジル)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "ロシア語" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "スロベニア語" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "スウェーデン語" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "タイ語" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "ベトナム語" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "無効な選択です" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "お名前" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "有効な数字でなければなりません" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "利用可能なオプションから通貨を選択してください" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "このユーザのロールを変更する権限がありません" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "無効な値です。" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "データファイル" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "アップロードするファイルを選択" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "サポートされていないファイル形式" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "ファイルサイズが大きすぎます" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "ファイルに列が見つかりません" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "ファイルにデータ行がみつかりません" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "データが入力されていません" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "データ列が指定されていません" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "必須の列がありません: {name}" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "{col} 列が重複しています。" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "外部画像ファイルのURL" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "外部URLからの画像ダウンロードは許可されていません" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "組立注文" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "外部リンク" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "外部 サイト へのリンク" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "数量" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "在庫商品" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "追跡可能" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "非アクティブな部品を非表示" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "購読中の部品を表示" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "購読中のカテゴリを表示" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "ユーザー" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "メッセージ ID:" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "リンク" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "添付ファイル" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "ファイルがありません" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "外部リンクが見つかりません。" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "添付ファイルを選択" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "コメント:" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "ファイル名" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "パーツカテゴリ" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "シリアル番号が既に存在します" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po index 9602415657..86682d82d1 100644 --- a/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ko/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -65,9 +65,9 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po new file mode 100644 index 0000000000..2c5a64161f --- /dev/null +++ b/src/backend/InvenTree/locale/lt/LC_MESSAGES/django.po @@ -0,0 +1,15422 @@ +msgid "" +msgstr "" +"Project-Id-Version: inventree\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" +"Last-Translator: \n" +"Language-Team: Lithuanian\n" +"Language: lt_LT\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && (n%100>19 || n%100<11) ? 0 : (n%10>=2 && n%10<=9) && (n%100>19 || n%100<11) ? 1 : n%1!=0 ? 2: 3);\n" +"X-Crowdin-Project: inventree\n" +"X-Crowdin-Project-ID: 452300\n" +"X-Crowdin-Language: lt\n" +"X-Crowdin-File: /src/backend/InvenTree/locale/en/LC_MESSAGES/django.po\n" +"X-Crowdin-File-ID: 250\n" + +#: InvenTree/api.py:269 +msgid "API endpoint not found" +msgstr "" + +#: InvenTree/api.py:499 +msgid "User does not have permission to view this model" +msgstr "" + +#: InvenTree/conversion.py:161 +#, python-brace-format +msgid "Invalid unit provided ({unit})" +msgstr "" + +#: InvenTree/conversion.py:178 +msgid "No value provided" +msgstr "" + +#: InvenTree/conversion.py:205 +#, python-brace-format +msgid "Could not convert {original} to {unit}" +msgstr "" + +#: InvenTree/conversion.py:207 +msgid "Invalid quantity supplied" +msgstr "" + +#: InvenTree/conversion.py:221 +#, python-brace-format +msgid "Invalid quantity supplied ({exc})" +msgstr "" + +#: InvenTree/exceptions.py:104 +msgid "Error details can be found in the admin panel" +msgstr "" + +#: InvenTree/fields.py:135 +msgid "Enter date" +msgstr "" + +#: InvenTree/fields.py:204 InvenTree/models.py:926 build/serializers.py:512 +#: build/serializers.py:590 build/templates/build/sidebar.html:29 +#: company/models.py:833 +#: company/templates/company/manufacturer_part_sidebar.html:11 +#: company/templates/company/sidebar.html:37 +#: company/templates/company/supplier_part_sidebar.html:11 order/models.py:1373 +#: order/templates/order/po_sidebar.html:11 +#: order/templates/order/return_order_sidebar.html:9 +#: order/templates/order/so_sidebar.html:17 part/admin.py:59 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 +#: report/templates/report/inventree_build_order_report.html:172 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 +#: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 +#: stock/serializers.py:1039 stock/serializers.py:1350 +#: stock/serializers.py:1439 stock/serializers.py:1604 +#: stock/templates/stock/stock_sidebar.html:25 +#: templates/js/translated/barcode.js:143 templates/js/translated/bom.js:1265 +#: templates/js/translated/company.js:1684 templates/js/translated/order.js:372 +#: templates/js/translated/part.js:1087 +#: templates/js/translated/purchase_order.js:2270 +#: templates/js/translated/return_order.js:774 +#: templates/js/translated/sales_order.js:1103 +#: templates/js/translated/sales_order.js:2018 +#: templates/js/translated/stock.js:1621 templates/js/translated/stock.js:2514 +msgid "Notes" +msgstr "" + +#: InvenTree/format.py:162 +#, python-brace-format +msgid "Value '{name}' does not appear in pattern format" +msgstr "" + +#: InvenTree/format.py:173 +msgid "Provided value does not match required pattern: " +msgstr "" + +#: InvenTree/forms.py:129 +msgid "Enter password" +msgstr "" + +#: InvenTree/forms.py:130 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:139 +msgid "Confirm password" +msgstr "" + +#: InvenTree/forms.py:140 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/forms.py:144 +msgid "Old password" +msgstr "" + +#: InvenTree/forms.py:183 +msgid "Email (again)" +msgstr "" + +#: InvenTree/forms.py:187 +msgid "Email address confirmation" +msgstr "" + +#: InvenTree/forms.py:210 +msgid "You must type the same email each time." +msgstr "" + +#: InvenTree/forms.py:221 +msgid "MFA Registration is disabled." +msgstr "" + +#: InvenTree/forms.py:259 InvenTree/forms.py:267 +msgid "The provided primary email address is not valid." +msgstr "" + +#: InvenTree/forms.py:273 +msgid "The provided email domain is not approved." +msgstr "" + +#: InvenTree/forms.py:402 +msgid "Registration is disabled." +msgstr "" + +#: InvenTree/helpers.py:488 order/models.py:568 order/models.py:811 +msgid "Invalid quantity provided" +msgstr "" + +#: InvenTree/helpers.py:493 +msgid "Empty serial number string" +msgstr "" + +#: InvenTree/helpers.py:522 +msgid "Duplicate serial" +msgstr "" + +#: InvenTree/helpers.py:554 InvenTree/helpers.py:597 +#, python-brace-format +msgid "Invalid group range: {group}" +msgstr "" + +#: InvenTree/helpers.py:585 +#, python-brace-format +msgid "Group range {group} exceeds allowed quantity ({expected_quantity})" +msgstr "" + +#: InvenTree/helpers.py:615 InvenTree/helpers.py:622 InvenTree/helpers.py:641 +#, python-brace-format +msgid "Invalid group sequence: {group}" +msgstr "" + +#: InvenTree/helpers.py:651 +msgid "No serial numbers found" +msgstr "" + +#: InvenTree/helpers.py:656 +msgid "Number of unique serial numbers ({len(serials)}) must match quantity ({expected_quantity})" +msgstr "" + +#: InvenTree/helpers.py:774 +msgid "Remove HTML tags from this value" +msgstr "" + +#: InvenTree/helpers_model.py:130 +msgid "Connection error" +msgstr "" + +#: InvenTree/helpers_model.py:135 InvenTree/helpers_model.py:142 +msgid "Server responded with invalid status code" +msgstr "" + +#: InvenTree/helpers_model.py:138 +msgid "Exception occurred" +msgstr "" + +#: InvenTree/helpers_model.py:148 +msgid "Server responded with invalid Content-Length value" +msgstr "" + +#: InvenTree/helpers_model.py:151 +msgid "Image size is too large" +msgstr "" + +#: InvenTree/helpers_model.py:163 +msgid "Image download exceeded maximum size" +msgstr "" + +#: InvenTree/helpers_model.py:168 +msgid "Remote server returned empty response" +msgstr "" + +#: InvenTree/helpers_model.py:176 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: InvenTree/locales.py:20 +msgid "Arabic" +msgstr "" + +#: InvenTree/locales.py:21 +msgid "Bulgarian" +msgstr "" + +#: InvenTree/locales.py:22 +msgid "Czech" +msgstr "" + +#: InvenTree/locales.py:23 +msgid "Danish" +msgstr "" + +#: InvenTree/locales.py:24 +msgid "German" +msgstr "" + +#: InvenTree/locales.py:25 +msgid "Greek" +msgstr "" + +#: InvenTree/locales.py:26 +msgid "English" +msgstr "" + +#: InvenTree/locales.py:27 +msgid "Spanish" +msgstr "" + +#: InvenTree/locales.py:28 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/locales.py:29 +msgid "Estonian" +msgstr "" + +#: InvenTree/locales.py:30 +msgid "Farsi / Persian" +msgstr "" + +#: InvenTree/locales.py:31 +msgid "Finnish" +msgstr "" + +#: InvenTree/locales.py:32 +msgid "French" +msgstr "" + +#: InvenTree/locales.py:33 +msgid "Hebrew" +msgstr "" + +#: InvenTree/locales.py:34 +msgid "Hindi" +msgstr "" + +#: InvenTree/locales.py:35 +msgid "Hungarian" +msgstr "" + +#: InvenTree/locales.py:36 +msgid "Italian" +msgstr "" + +#: InvenTree/locales.py:37 +msgid "Japanese" +msgstr "" + +#: InvenTree/locales.py:38 +msgid "Korean" +msgstr "" + +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 +msgid "Latvian" +msgstr "" + +#: InvenTree/locales.py:41 +msgid "Dutch" +msgstr "" + +#: InvenTree/locales.py:42 +msgid "Norwegian" +msgstr "" + +#: InvenTree/locales.py:43 +msgid "Polish" +msgstr "" + +#: InvenTree/locales.py:44 +msgid "Portuguese" +msgstr "" + +#: InvenTree/locales.py:45 +msgid "Portuguese (Brazilian)" +msgstr "" + +#: InvenTree/locales.py:46 +msgid "Romanian" +msgstr "" + +#: InvenTree/locales.py:47 +msgid "Russian" +msgstr "" + +#: InvenTree/locales.py:48 +msgid "Slovak" +msgstr "" + +#: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "" + +#: InvenTree/locales.py:50 +msgid "Serbian" +msgstr "" + +#: InvenTree/locales.py:51 +msgid "Swedish" +msgstr "" + +#: InvenTree/locales.py:52 +msgid "Thai" +msgstr "" + +#: InvenTree/locales.py:53 +msgid "Turkish" +msgstr "" + +#: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 +msgid "Chinese (Traditional)" +msgstr "" + +#: InvenTree/magic_login.py:28 +#, python-brace-format +msgid "[{site_name}] Log in to the app" +msgstr "" + +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 +#: company/models.py:133 company/templates/company/company_base.html:138 +#: templates/InvenTree/settings/user.html:49 +#: templates/js/translated/company.js:677 +msgid "Email" +msgstr "" + +#: InvenTree/models.py:103 +msgid "Error running plugin validation" +msgstr "" + +#: InvenTree/models.py:172 +msgid "Metadata must be a python dict object" +msgstr "" + +#: InvenTree/models.py:178 +msgid "Plugin Metadata" +msgstr "" + +#: InvenTree/models.py:179 +msgid "JSON metadata field, for use by external plugins" +msgstr "" + +#: InvenTree/models.py:406 +msgid "Improperly formatted pattern" +msgstr "" + +#: InvenTree/models.py:413 +msgid "Unknown format key specified" +msgstr "" + +#: InvenTree/models.py:419 +msgid "Missing required format key" +msgstr "" + +#: InvenTree/models.py:430 +msgid "Reference field cannot be empty" +msgstr "" + +#: InvenTree/models.py:438 +msgid "Reference must match required pattern" +msgstr "" + +#: InvenTree/models.py:469 +msgid "Reference number is too large" +msgstr "" + +#: InvenTree/models.py:720 +msgid "Duplicate names cannot exist under the same parent" +msgstr "" + +#: InvenTree/models.py:737 +msgid "Invalid choice" +msgstr "" + +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 +#: plugin/models.py:51 report/models.py:149 stock/models.py:82 +#: templates/InvenTree/settings/mixins/urls.html:13 +#: templates/InvenTree/settings/notifications.html:17 +#: templates/InvenTree/settings/plugin.html:83 +#: templates/InvenTree/settings/plugin_settings.html:22 +#: templates/InvenTree/settings/settings_staff_js.html:67 +#: templates/InvenTree/settings/settings_staff_js.html:454 +#: templates/js/translated/company.js:676 +#: templates/js/translated/company.js:724 +#: templates/js/translated/company.js:913 +#: templates/js/translated/company.js:1165 +#: templates/js/translated/company.js:1413 templates/js/translated/part.js:1193 +#: templates/js/translated/part.js:1481 templates/js/translated/part.js:1617 +#: templates/js/translated/part.js:2768 templates/js/translated/stock.js:2802 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:773 build/models.py:251 +#: build/templates/build/detail.html:24 common/models.py:158 +#: company/models.py:518 company/models.py:824 +#: company/templates/company/company_base.html:77 +#: company/templates/company/manufacturer_part.html:75 +#: company/templates/company/supplier_part.html:107 order/models.py:289 +#: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 +#: part/models.py:3778 part/templates/part/category.html:79 +#: part/templates/part/part_base.html:170 +#: part/templates/part/part_scheduling.html:12 report/models.py:155 +#: report/models.py:517 report/models.py:543 +#: report/templates/report/inventree_build_order_report.html:117 +#: stock/admin.py:54 stock/models.py:88 stock/templates/stock/location.html:122 +#: templates/InvenTree/settings/notifications.html:19 +#: templates/InvenTree/settings/plugin_settings.html:27 +#: templates/InvenTree/settings/settings_staff_js.html:170 +#: templates/InvenTree/settings/settings_staff_js.html:459 +#: templates/js/translated/bom.js:633 templates/js/translated/bom.js:963 +#: templates/js/translated/build.js:2314 templates/js/translated/company.js:519 +#: templates/js/translated/company.js:1330 +#: templates/js/translated/company.js:1641 templates/js/translated/index.js:119 +#: templates/js/translated/order.js:323 templates/js/translated/part.js:1245 +#: templates/js/translated/part.js:1490 templates/js/translated/part.js:1628 +#: templates/js/translated/part.js:1965 templates/js/translated/part.js:2361 +#: templates/js/translated/part.js:2803 templates/js/translated/part.js:2915 +#: templates/js/translated/plugin.js:80 +#: templates/js/translated/purchase_order.js:1776 +#: templates/js/translated/purchase_order.js:1919 +#: templates/js/translated/purchase_order.js:2092 +#: templates/js/translated/return_order.js:313 +#: templates/js/translated/sales_order.js:838 +#: templates/js/translated/sales_order.js:1848 +#: templates/js/translated/stock.js:1600 templates/js/translated/stock.js:2144 +#: templates/js/translated/stock.js:2833 templates/js/translated/stock.js:2916 +msgid "Description" +msgstr "" + +#: InvenTree/models.py:774 stock/models.py:89 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/models.py:789 templates/js/translated/part.js:2812 +#: templates/js/translated/stock.js:2842 +msgid "Path" +msgstr "" + +#: InvenTree/models.py:926 +msgid "Markdown notes (optional)" +msgstr "" + +#: InvenTree/models.py:957 +msgid "Barcode Data" +msgstr "" + +#: InvenTree/models.py:958 +msgid "Third party barcode data" +msgstr "" + +#: InvenTree/models.py:964 +msgid "Barcode Hash" +msgstr "" + +#: InvenTree/models.py:965 +msgid "Unique hash of barcode data" +msgstr "" + +#: InvenTree/models.py:1032 +msgid "Existing barcode found" +msgstr "" + +#: InvenTree/models.py:1075 +msgid "Server Error" +msgstr "" + +#: InvenTree/models.py:1076 +msgid "An error has been logged by the server." +msgstr "" + +#: InvenTree/serializers.py:63 part/models.py:4387 +msgid "Must be a valid number" +msgstr "" + +#: InvenTree/serializers.py:100 company/models.py:183 +#: company/templates/company/company_base.html:112 part/models.py:3114 +#: templates/InvenTree/settings/settings_staff_js.html:44 +#: templates/currency_data.html:5 +msgid "Currency" +msgstr "" + +#: InvenTree/serializers.py:103 +msgid "Select currency from available options" +msgstr "" + +#: InvenTree/serializers.py:405 templates/InvenTree/settings/user.html:33 +msgid "Username" +msgstr "" + +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 +msgid "First Name" +msgstr "" + +#: InvenTree/serializers.py:408 +msgid "First name of the user" +msgstr "" + +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 +msgid "Last Name" +msgstr "" + +#: InvenTree/serializers.py:412 +msgid "Last name of the user" +msgstr "" + +#: InvenTree/serializers.py:416 +msgid "Email address of the user" +msgstr "" + +#: InvenTree/serializers.py:441 +msgid "Staff" +msgstr "" + +#: InvenTree/serializers.py:441 +msgid "Does this user have staff permissions" +msgstr "" + +#: InvenTree/serializers.py:445 +msgid "Superuser" +msgstr "" + +#: InvenTree/serializers.py:445 +msgid "Is this user a superuser" +msgstr "" + +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 +#: company/models.py:798 machine/models.py:39 part/admin.py:88 +#: part/models.py:1201 plugin/models.py:66 +#: templates/js/translated/company.js:523 +#: templates/js/translated/table_filters.js:134 +#: templates/js/translated/table_filters.js:226 +#: templates/js/translated/table_filters.js:513 +#: templates/js/translated/table_filters.js:541 +#: templates/js/translated/table_filters.js:719 +#: templates/js/translated/table_filters.js:808 users/models.py:182 +msgid "Active" +msgstr "" + +#: InvenTree/serializers.py:449 +msgid "Is this user account active" +msgstr "" + +#: InvenTree/serializers.py:467 +msgid "You do not have permission to change this user role." +msgstr "" + +#: InvenTree/serializers.py:503 +msgid "Only superusers can create new users" +msgstr "" + +#: InvenTree/serializers.py:522 +msgid "Your account has been created." +msgstr "" + +#: InvenTree/serializers.py:524 +msgid "Please use the password reset function to login" +msgstr "" + +#: InvenTree/serializers.py:531 +msgid "Welcome to InvenTree" +msgstr "" + +#: InvenTree/serializers.py:589 +msgid "Invalid value" +msgstr "" + +#: InvenTree/serializers.py:609 importer/models.py:64 +msgid "Data File" +msgstr "" + +#: InvenTree/serializers.py:610 +msgid "Select data file for upload" +msgstr "" + +#: InvenTree/serializers.py:627 +msgid "Unsupported file type" +msgstr "" + +#: InvenTree/serializers.py:633 +msgid "File is too large" +msgstr "" + +#: InvenTree/serializers.py:654 +msgid "No columns found in file" +msgstr "" + +#: InvenTree/serializers.py:657 +msgid "No data rows found in file" +msgstr "" + +#: InvenTree/serializers.py:769 +msgid "No data rows provided" +msgstr "" + +#: InvenTree/serializers.py:772 +msgid "No data columns supplied" +msgstr "" + +#: InvenTree/serializers.py:838 +#, python-brace-format +msgid "Missing required column: '{name}'" +msgstr "" + +#: InvenTree/serializers.py:847 +#, python-brace-format +msgid "Duplicate column: '{col}'" +msgstr "" + +#: InvenTree/serializers.py:886 +msgid "Remote Image" +msgstr "" + +#: InvenTree/serializers.py:887 +msgid "URL of remote image file" +msgstr "" + +#: InvenTree/serializers.py:905 +msgid "Downloading images from remote URL is not enabled" +msgstr "" + +#: InvenTree/status.py:65 part/serializers.py:1265 +msgid "Background worker check failed" +msgstr "" + +#: InvenTree/status.py:69 +msgid "Email backend not configured" +msgstr "" + +#: InvenTree/status.py:72 +msgid "InvenTree system health checks failed" +msgstr "" + +#: InvenTree/templatetags/inventree_extras.py:184 +msgid "Unknown database" +msgstr "" + +#: InvenTree/validators.py:32 +msgid "Invalid physical unit" +msgstr "" + +#: InvenTree/validators.py:38 +msgid "Not a valid currency code" +msgstr "" + +#: InvenTree/validators.py:115 InvenTree/validators.py:131 +msgid "Overage value must not be negative" +msgstr "" + +#: InvenTree/validators.py:133 +msgid "Overage must not exceed 100%" +msgstr "" + +#: InvenTree/validators.py:139 +msgid "Invalid value for overage" +msgstr "" + +#: InvenTree/views.py:399 templates/InvenTree/settings/user.html:23 +msgid "Edit User Information" +msgstr "" + +#: InvenTree/views.py:411 templates/InvenTree/settings/user.html:20 +msgid "Set Password" +msgstr "" + +#: InvenTree/views.py:433 +msgid "Password fields must match" +msgstr "" + +#: InvenTree/views.py:441 +msgid "Wrong password provided" +msgstr "" + +#: InvenTree/views.py:645 templates/navbar.html:160 +msgid "System Information" +msgstr "" + +#: InvenTree/views.py:652 templates/navbar.html:171 +msgid "About InvenTree" +msgstr "" + +#: build/api.py:53 build/models.py:262 +#: build/templates/build/build_base.html:191 +#: build/templates/build/detail.html:87 +msgid "Parent Build" +msgstr "" + +#: build/api.py:59 +msgid "Ancestor Build" +msgstr "" + +#: build/api.py:78 order/api.py:92 templates/js/translated/table_filters.js:101 +#: templates/js/translated/table_filters.js:549 +#: templates/js/translated/table_filters.js:633 +#: templates/js/translated/table_filters.js:674 +msgid "Assigned to me" +msgstr "" + +#: build/api.py:95 build/templates/build/build_base.html:205 +#: build/templates/build/detail.html:115 +#: report/templates/report/inventree_build_order_report.html:152 +#: templates/js/translated/table_filters.js:552 +msgid "Issued By" +msgstr "" + +#: build/api.py:114 +msgid "Assigned To" +msgstr "" + +#: build/api.py:275 +msgid "Build must be cancelled before it can be deleted" +msgstr "" + +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 +#: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 +#: templates/js/translated/build.js:2705 +#: templates/js/translated/table_filters.js:197 +#: templates/js/translated/table_filters.js:586 +msgid "Consumable" +msgstr "" + +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 +#: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 +#: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 +#: templates/js/translated/table_filters.js:193 +#: templates/js/translated/table_filters.js:222 +#: templates/js/translated/table_filters.js:590 +msgid "Optional" +msgstr "" + +#: build/api.py:321 common/models.py:1491 part/admin.py:91 part/admin.py:428 +#: part/models.py:1166 part/serializers.py:1594 +#: templates/js/translated/bom.js:1639 +#: templates/js/translated/table_filters.js:337 +#: templates/js/translated/table_filters.js:729 +msgid "Assembly" +msgstr "" + +#: build/api.py:322 templates/js/translated/table_filters.js:415 +#: templates/js/translated/table_filters.js:582 +msgid "Tracked" +msgstr "" + +#: build/api.py:323 build/serializers.py:1334 part/models.py:1184 +#: templates/js/translated/table_filters.js:146 +#: templates/js/translated/table_filters.js:779 +msgid "Testable" +msgstr "" + +#: build/api.py:325 part/admin.py:144 templates/js/translated/build.js:1920 +#: templates/js/translated/build.js:2823 +#: templates/js/translated/sales_order.js:1965 +#: templates/js/translated/table_filters.js:574 +msgid "Allocated" +msgstr "" + +#: build/api.py:333 company/models.py:888 company/serializers.py:399 +#: company/templates/company/supplier_part.html:114 +#: templates/email/build_order_required_stock.html:19 +#: templates/email/low_stock_notification.html:17 +#: templates/js/translated/bom.js:1162 templates/js/translated/build.js:2755 +#: templates/js/translated/index.js:123 +#: templates/js/translated/model_renderers.js:235 +#: templates/js/translated/part.js:695 templates/js/translated/part.js:697 +#: templates/js/translated/part.js:702 +#: templates/js/translated/table_filters.js:347 +#: templates/js/translated/table_filters.js:578 +msgid "Available" +msgstr "" + +#: build/models.py:88 build/templates/build/build_base.html:9 +#: build/templates/build/build_base.html:27 +#: report/templates/report/inventree_build_order_report.html:105 +#: stock/serializers.py:85 templates/email/build_order_completed.html:16 +#: templates/email/overdue_build_order.html:15 +#: templates/js/translated/build.js:1148 templates/js/translated/stock.js:2977 +msgid "Build Order" +msgstr "" + +#: build/models.py:89 build/templates/build/build_base.html:13 +#: build/templates/build/index.html:8 build/templates/build/index.html:12 +#: order/templates/order/sales_order_detail.html:111 +#: order/templates/order/so_sidebar.html:13 +#: 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:207 +msgid "Build Orders" +msgstr "" + +#: build/models.py:136 +msgid "Assembly BOM has not been validated" +msgstr "" + +#: build/models.py:143 +msgid "Build order cannot be created for an inactive part" +msgstr "" + +#: build/models.py:150 +msgid "Build order cannot be created for an unlocked part" +msgstr "" + +#: build/models.py:164 +msgid "Invalid choice for parent build" +msgstr "" + +#: build/models.py:175 order/models.py:240 +msgid "Responsible user or group must be specified" +msgstr "" + +#: build/models.py:181 +msgid "Build order part cannot be changed" +msgstr "" + +#: build/models.py:242 +msgid "Build Order Reference" +msgstr "" + +#: build/models.py:243 build/serializers.py:1331 order/models.py:468 +#: order/models.py:979 order/models.py:1366 order/models.py:2128 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 +#: report/templates/report/inventree_bill_of_materials_report.html:139 +#: report/templates/report/inventree_purchase_order_report.html:28 +#: report/templates/report/inventree_return_order_report.html:26 +#: report/templates/report/inventree_sales_order_report.html:28 +#: templates/js/translated/bom.js:770 templates/js/translated/bom.js:973 +#: templates/js/translated/build.js:1014 templates/js/translated/build.js:2688 +#: templates/js/translated/order.js:316 templates/js/translated/pricing.js:386 +#: templates/js/translated/purchase_order.js:2135 +#: templates/js/translated/return_order.js:727 +#: templates/js/translated/sales_order.js:1854 +msgid "Reference" +msgstr "" + +#: build/models.py:254 +msgid "Brief description of the build (optional)" +msgstr "" + +#: build/models.py:263 +msgid "BuildOrder to which this build is allocated" +msgstr "" + +#: build/models.py:268 build/serializers.py:1322 +#: build/templates/build/build_base.html:105 +#: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 +#: order/models.py:1496 order/models.py:1651 order/models.py:1652 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 +#: part/serializers.py:1211 part/serializers.py:1855 +#: part/templates/part/part_app_base.html:8 +#: part/templates/part/part_pricing.html:12 +#: part/templates/part/upload_bom.html:52 +#: report/templates/report/inventree_bill_of_materials_report.html:110 +#: report/templates/report/inventree_bill_of_materials_report.html:137 +#: report/templates/report/inventree_build_order_report.html:109 +#: report/templates/report/inventree_purchase_order_report.html:27 +#: report/templates/report/inventree_return_order_report.html:24 +#: report/templates/report/inventree_sales_order_report.html:27 +#: report/templates/report/inventree_stock_location_report.html:102 +#: stock/serializers.py:112 stock/serializers.py:160 stock/serializers.py:453 +#: stock/serializers.py:923 templates/InvenTree/search.html:82 +#: templates/email/build_order_completed.html:17 +#: templates/email/build_order_required_stock.html:17 +#: templates/email/low_stock_notification.html:15 +#: templates/email/overdue_build_order.html:16 +#: templates/js/translated/barcode.js:577 templates/js/translated/bom.js:632 +#: templates/js/translated/bom.js:769 templates/js/translated/bom.js:905 +#: templates/js/translated/build.js:1005 templates/js/translated/build.js:1488 +#: templates/js/translated/build.js:1919 templates/js/translated/build.js:2337 +#: templates/js/translated/build.js:2510 templates/js/translated/company.js:348 +#: templates/js/translated/company.js:1116 +#: templates/js/translated/company.js:1271 +#: templates/js/translated/company.js:1559 templates/js/translated/index.js:109 +#: templates/js/translated/part.js:1950 templates/js/translated/part.js:2022 +#: templates/js/translated/part.js:2330 templates/js/translated/pricing.js:369 +#: templates/js/translated/purchase_order.js:751 +#: templates/js/translated/purchase_order.js:1367 +#: templates/js/translated/purchase_order.js:1918 +#: templates/js/translated/purchase_order.js:2077 +#: templates/js/translated/return_order.js:538 +#: templates/js/translated/return_order.js:708 +#: templates/js/translated/sales_order.js:300 +#: templates/js/translated/sales_order.js:1233 +#: templates/js/translated/sales_order.js:1634 +#: templates/js/translated/sales_order.js:1832 +#: templates/js/translated/stock.js:682 templates/js/translated/stock.js:848 +#: templates/js/translated/stock.js:1065 templates/js/translated/stock.js:2083 +#: templates/js/translated/stock.js:2942 templates/js/translated/stock.js:3175 +#: templates/js/translated/stock.js:3320 +msgid "Part" +msgstr "" + +#: build/models.py:276 +msgid "Select part to build" +msgstr "" + +#: build/models.py:281 +msgid "Sales Order Reference" +msgstr "" + +#: build/models.py:285 +msgid "SalesOrder to which this build is allocated" +msgstr "" + +#: build/models.py:290 build/serializers.py:1092 +#: templates/js/translated/build.js:1907 +#: templates/js/translated/sales_order.js:1221 +msgid "Source Location" +msgstr "" + +#: build/models.py:294 +msgid "Select location to take stock from for this build (leave blank to take from any stock location)" +msgstr "" + +#: build/models.py:299 +msgid "Destination Location" +msgstr "" + +#: build/models.py:303 +msgid "Select location where the completed items will be stored" +msgstr "" + +#: build/models.py:307 +msgid "Build Quantity" +msgstr "" + +#: build/models.py:310 +msgid "Number of stock items to build" +msgstr "" + +#: build/models.py:314 +msgid "Completed items" +msgstr "" + +#: build/models.py:316 +msgid "Number of stock items which have been completed" +msgstr "" + +#: build/models.py:320 +msgid "Build Status" +msgstr "" + +#: build/models.py:324 +msgid "Build status code" +msgstr "" + +#: build/models.py:333 build/serializers.py:346 build/serializers.py:1242 +#: order/serializers.py:671 stock/models.py:863 stock/serializers.py:77 +#: stock/serializers.py:1569 templates/js/translated/purchase_order.js:1129 +#: templates/js/translated/stock.js:1199 +msgid "Batch Code" +msgstr "" + +#: build/models.py:337 build/serializers.py:347 +msgid "Batch code for this build output" +msgstr "" + +#: build/models.py:340 order/models.py:316 order/serializers.py:127 +#: part/models.py:1241 part/templates/part/part_base.html:326 +#: templates/js/translated/return_order.js:338 +#: templates/js/translated/sales_order.js:863 +msgid "Creation Date" +msgstr "" + +#: build/models.py:344 +msgid "Target completion date" +msgstr "" + +#: build/models.py:345 +msgid "Target date for build completion. Build will be overdue after this date." +msgstr "" + +#: build/models.py:348 order/models.py:527 order/models.py:2173 +#: templates/js/translated/build.js:2422 +msgid "Completion Date" +msgstr "" + +#: build/models.py:354 +msgid "completed by" +msgstr "" + +#: build/models.py:362 templates/js/translated/build.js:2382 +msgid "Issued by" +msgstr "" + +#: build/models.py:363 +msgid "User who issued this build order" +msgstr "" + +#: build/models.py:371 build/templates/build/build_base.html:212 +#: build/templates/build/detail.html:122 common/models.py:167 order/api.py:142 +#: order/models.py:334 order/templates/order/order_base.html:222 +#: order/templates/order/return_order_base.html:191 +#: order/templates/order/sales_order_base.html:235 part/models.py:1258 +#: part/templates/part/part_base.html:406 +#: report/templates/report/inventree_build_order_report.html:158 +#: templates/InvenTree/settings/settings_staff_js.html:150 +#: templates/js/translated/build.js:2394 +#: templates/js/translated/purchase_order.js:1833 +#: templates/js/translated/return_order.js:358 +#: templates/js/translated/table_filters.js:551 +msgid "Responsible" +msgstr "" + +#: build/models.py:372 +msgid "User or group responsible for this build order" +msgstr "" + +#: build/models.py:377 build/templates/build/detail.html:108 +#: company/templates/company/manufacturer_part.html:107 +#: company/templates/company/supplier_part.html:194 +#: order/templates/order/order_base.html:172 +#: order/templates/order/return_order_base.html:148 +#: order/templates/order/sales_order_base.html:187 +#: part/templates/part/part_base.html:399 stock/models.py:859 +#: stock/templates/stock/item_base.html:196 +#: templates/js/translated/company.js:1019 +msgid "External Link" +msgstr "" + +#: build/models.py:378 common/models.py:3273 part/models.py:1070 +#: stock/models.py:859 +msgid "Link to external URL" +msgstr "" + +#: build/models.py:382 +msgid "Build Priority" +msgstr "" + +#: build/models.py:385 +msgid "Priority of this build order" +msgstr "" + +#: build/models.py:392 common/models.py:137 common/models.py:151 +#: order/admin.py:18 order/api.py:128 order/models.py:298 +#: templates/InvenTree/settings/settings_staff_js.html:146 +#: templates/js/translated/build.js:2319 +#: templates/js/translated/purchase_order.js:1780 +#: templates/js/translated/return_order.js:317 +#: templates/js/translated/sales_order.js:842 +#: templates/js/translated/table_filters.js:47 +#: templates/project_code_data.html:6 +msgid "Project Code" +msgstr "" + +#: build/models.py:393 +msgid "Project code for this build order" +msgstr "" + +#: build/models.py:652 build/models.py:779 +msgid "Failed to offload task to complete build allocations" +msgstr "" + +#: build/models.py:674 +#, python-brace-format +msgid "Build order {build} has been completed" +msgstr "" + +#: build/models.py:680 +msgid "A build order has been completed" +msgstr "" + +#: build/models.py:968 build/models.py:1057 +msgid "No build output specified" +msgstr "" + +#: build/models.py:971 +msgid "Build output is already completed" +msgstr "" + +#: build/models.py:974 +msgid "Build output does not match Build Order" +msgstr "" + +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 +#: build/serializers.py:959 order/models.py:565 order/serializers.py:500 +#: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 +#: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 +msgid "Quantity must be greater than zero" +msgstr "" + +#: build/models.py:1066 build/serializers.py:284 +msgid "Quantity cannot be greater than the output quantity" +msgstr "" + +#: build/models.py:1126 build/serializers.py:607 +#, python-brace-format +msgid "Build output {serial} has not passed all required tests" +msgstr "" + +#: build/models.py:1477 +msgid "Build Order Line Item" +msgstr "" + +#: build/models.py:1502 +msgid "Build object" +msgstr "" + +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 +#: build/serializers.py:313 build/serializers.py:1339 +#: build/templates/build/build_base.html:110 +#: build/templates/build/detail.html:34 common/models.py:2582 +#: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 +#: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 +#: part/templates/part/part_pricing.html:16 +#: part/templates/part/upload_bom.html:53 +#: report/templates/report/inventree_bill_of_materials_report.html:138 +#: report/templates/report/inventree_build_order_report.html:113 +#: report/templates/report/inventree_purchase_order_report.html:29 +#: report/templates/report/inventree_sales_order_report.html:29 +#: report/templates/report/inventree_stock_location_report.html:104 +#: report/templates/report/inventree_test_report.html:90 +#: report/templates/report/inventree_test_report.html:169 stock/admin.py:160 +#: stock/serializers.py:128 stock/serializers.py:168 stock/serializers.py:667 +#: stock/templates/stock/item_base.html:283 +#: stock/templates/stock/item_base.html:291 +#: stock/templates/stock/item_base.html:338 +#: templates/email/build_order_completed.html:18 +#: templates/js/translated/barcode.js:579 templates/js/translated/bom.js:771 +#: templates/js/translated/bom.js:981 templates/js/translated/build.js:525 +#: templates/js/translated/build.js:740 templates/js/translated/build.js:1545 +#: templates/js/translated/build.js:1922 templates/js/translated/build.js:2532 +#: templates/js/translated/company.js:1818 +#: templates/js/translated/model_renderers.js:237 +#: templates/js/translated/order.js:329 templates/js/translated/part.js:968 +#: templates/js/translated/part.js:1818 templates/js/translated/part.js:3360 +#: templates/js/translated/pricing.js:381 +#: templates/js/translated/pricing.js:474 +#: templates/js/translated/pricing.js:522 +#: templates/js/translated/pricing.js:616 +#: templates/js/translated/purchase_order.js:754 +#: templates/js/translated/purchase_order.js:1922 +#: templates/js/translated/purchase_order.js:2141 +#: templates/js/translated/sales_order.js:317 +#: templates/js/translated/sales_order.js:1235 +#: templates/js/translated/sales_order.js:1554 +#: templates/js/translated/sales_order.js:1644 +#: templates/js/translated/sales_order.js:1734 +#: templates/js/translated/sales_order.js:1860 +#: templates/js/translated/stock.js:570 templates/js/translated/stock.js:708 +#: templates/js/translated/stock.js:879 templates/js/translated/stock.js:3106 +#: templates/js/translated/stock.js:3189 +msgid "Quantity" +msgstr "" + +#: build/models.py:1517 +msgid "Required quantity for build order" +msgstr "" + +#: build/models.py:1597 +msgid "Build item must specify a build output, as master part is marked as trackable" +msgstr "" + +#: build/models.py:1606 +#, python-brace-format +msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" +msgstr "" + +#: build/models.py:1616 order/models.py:1985 +msgid "Stock item is over-allocated" +msgstr "" + +#: build/models.py:1622 order/models.py:1988 +msgid "Allocation quantity must be greater than zero" +msgstr "" + +#: build/models.py:1628 +msgid "Quantity must be 1 for serialized stock" +msgstr "" + +#: build/models.py:1687 +msgid "Selected stock item does not match BOM line" +msgstr "" + +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 +#: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 +#: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 +#: stock/templates/stock/item_base.html:10 +#: stock/templates/stock/item_base.html:23 +#: stock/templates/stock/item_base.html:190 +#: templates/js/translated/build.js:1921 +#: templates/js/translated/sales_order.js:301 +#: templates/js/translated/sales_order.js:1234 +#: templates/js/translated/sales_order.js:1535 +#: templates/js/translated/sales_order.js:1540 +#: templates/js/translated/sales_order.js:1641 +#: templates/js/translated/sales_order.js:1728 +#: templates/js/translated/stock.js:683 templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:3062 +msgid "Stock Item" +msgstr "" + +#: build/models.py:1763 +msgid "Source stock item" +msgstr "" + +#: build/models.py:1776 +msgid "Stock quantity to allocate to build" +msgstr "" + +#: build/models.py:1784 +msgid "Install into" +msgstr "" + +#: build/models.py:1785 +msgid "Destination stock item" +msgstr "" + +#: build/serializers.py:107 +msgid "Build Level" +msgstr "" + +#: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 +#: stock/admin.py:157 +msgid "Part Name" +msgstr "" + +#: build/serializers.py:127 +msgid "Project Code Label" +msgstr "" + +#: build/serializers.py:133 +msgid "Create Child Builds" +msgstr "" + +#: build/serializers.py:134 +msgid "Automatically generate child build orders" +msgstr "" + +#: build/serializers.py:216 build/serializers.py:968 +#: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 +msgid "Build Output" +msgstr "" + +#: build/serializers.py:228 +msgid "Build output does not match the parent build" +msgstr "" + +#: build/serializers.py:232 +msgid "Output part does not match BuildOrder part" +msgstr "" + +#: build/serializers.py:236 +msgid "This build output has already been completed" +msgstr "" + +#: build/serializers.py:247 +msgid "This build output is not fully allocated" +msgstr "" + +#: build/serializers.py:267 build/serializers.py:314 +msgid "Enter quantity for build output" +msgstr "" + +#: build/serializers.py:335 +msgid "Integer quantity required for trackable parts" +msgstr "" + +#: build/serializers.py:338 +msgid "Integer quantity required, as the bill of materials contains trackable parts" +msgstr "" + +#: build/serializers.py:353 order/serializers.py:679 order/serializers.py:1468 +#: stock/serializers.py:687 templates/js/translated/purchase_order.js:1154 +#: templates/js/translated/stock.js:373 templates/js/translated/stock.js:571 +msgid "Serial Numbers" +msgstr "" + +#: build/serializers.py:354 +msgid "Enter serial numbers for build outputs" +msgstr "" + +#: build/serializers.py:359 build/serializers.py:500 build/serializers.py:572 +#: order/serializers.py:655 order/serializers.py:778 order/serializers.py:1797 +#: part/serializers.py:1231 stock/serializers.py:103 stock/serializers.py:698 +#: stock/serializers.py:858 stock/serializers.py:984 stock/serializers.py:1432 +#: stock/serializers.py:1688 stock/templates/stock/item_base.html:390 +#: templates/js/translated/barcode.js:578 +#: templates/js/translated/barcode.js:826 templates/js/translated/build.js:1035 +#: templates/js/translated/build.js:1177 templates/js/translated/build.js:2547 +#: templates/js/translated/purchase_order.js:1210 +#: templates/js/translated/purchase_order.js:1320 +#: templates/js/translated/sales_order.js:1547 +#: templates/js/translated/sales_order.js:1655 +#: templates/js/translated/sales_order.js:1663 +#: templates/js/translated/sales_order.js:1742 +#: templates/js/translated/stock.js:684 templates/js/translated/stock.js:850 +#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:2287 +#: templates/js/translated/stock.js:2956 +msgid "Location" +msgstr "" + +#: build/serializers.py:360 +msgid "Stock location for build output" +msgstr "" + +#: build/serializers.py:374 +msgid "Auto Allocate Serial Numbers" +msgstr "" + +#: build/serializers.py:375 +msgid "Automatically allocate required items with matching serial numbers" +msgstr "" + +#: build/serializers.py:390 +msgid "Serial numbers must be provided for trackable parts" +msgstr "" + +#: build/serializers.py:415 stock/api.py:1024 +msgid "The following serial numbers already exist or are invalid" +msgstr "" + +#: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 +msgid "A list of build outputs must be provided" +msgstr "" + +#: build/serializers.py:501 +msgid "Stock location for scrapped outputs" +msgstr "" + +#: build/serializers.py:507 +msgid "Discard Allocations" +msgstr "" + +#: build/serializers.py:508 +msgid "Discard any stock allocations for scrapped outputs" +msgstr "" + +#: build/serializers.py:513 +msgid "Reason for scrapping build output(s)" +msgstr "" + +#: build/serializers.py:573 +msgid "Location for completed build outputs" +msgstr "" + +#: build/serializers.py:579 build/templates/build/build_base.html:159 +#: build/templates/build/detail.html:62 order/models.py:477 +#: order/models.py:1003 order/models.py:2152 order/serializers.py:687 +#: stock/admin.py:165 stock/serializers.py:1035 stock/serializers.py:1576 +#: stock/templates/stock/item_base.html:423 +#: templates/js/translated/barcode.js:252 templates/js/translated/build.js:2366 +#: templates/js/translated/purchase_order.js:1371 +#: templates/js/translated/purchase_order.js:1792 +#: templates/js/translated/return_order.js:330 +#: templates/js/translated/sales_order.js:855 +#: templates/js/translated/stock.js:2262 templates/js/translated/stock.js:3080 +#: templates/js/translated/stock.js:3205 +msgid "Status" +msgstr "" + +#: build/serializers.py:585 +msgid "Accept Incomplete Allocation" +msgstr "" + +#: build/serializers.py:586 +msgid "Complete outputs if stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:698 +msgid "Consume Allocated Stock" +msgstr "" + +#: build/serializers.py:699 +msgid "Consume any stock which has already been allocated to this build" +msgstr "" + +#: build/serializers.py:705 +msgid "Remove Incomplete Outputs" +msgstr "" + +#: build/serializers.py:706 +msgid "Delete any build outputs which have not been completed" +msgstr "" + +#: build/serializers.py:733 +msgid "Not permitted" +msgstr "" + +#: build/serializers.py:734 +msgid "Accept as consumed by this build order" +msgstr "" + +#: build/serializers.py:735 +msgid "Deallocate before completing this build order" +msgstr "" + +#: build/serializers.py:765 +msgid "Overallocated Stock" +msgstr "" + +#: build/serializers.py:767 +msgid "How do you want to handle extra stock items assigned to the build order" +msgstr "" + +#: build/serializers.py:777 +msgid "Some stock items have been overallocated" +msgstr "" + +#: build/serializers.py:782 +msgid "Accept Unallocated" +msgstr "" + +#: build/serializers.py:783 +msgid "Accept that stock items have not been fully allocated to this build order" +msgstr "" + +#: build/serializers.py:793 templates/js/translated/build.js:319 +msgid "Required stock has not been fully allocated" +msgstr "" + +#: build/serializers.py:798 order/serializers.py:346 order/serializers.py:1369 +msgid "Accept Incomplete" +msgstr "" + +#: build/serializers.py:799 +msgid "Accept that the required number of build outputs have not been completed" +msgstr "" + +#: build/serializers.py:809 templates/js/translated/build.js:323 +msgid "Required build quantity has not been completed" +msgstr "" + +#: build/serializers.py:818 +msgid "Build order has open child build orders" +msgstr "" + +#: build/serializers.py:821 +msgid "Build order must be in production state" +msgstr "" + +#: build/serializers.py:824 templates/js/translated/build.js:307 +msgid "Build order has incomplete outputs" +msgstr "" + +#: build/serializers.py:862 +msgid "Build Line" +msgstr "" + +#: build/serializers.py:872 +msgid "Build output" +msgstr "" + +#: build/serializers.py:880 +msgid "Build output must point to the same build" +msgstr "" + +#: build/serializers.py:916 +msgid "Build Line Item" +msgstr "" + +#: build/serializers.py:930 +msgid "bom_item.part must point to the same part as the build order" +msgstr "" + +#: build/serializers.py:945 stock/serializers.py:1301 +msgid "Item must be in stock" +msgstr "" + +#: build/serializers.py:993 order/serializers.py:1355 +#, python-brace-format +msgid "Available quantity ({q}) exceeded" +msgstr "" + +#: build/serializers.py:999 +msgid "Build output must be specified for allocation of tracked parts" +msgstr "" + +#: build/serializers.py:1006 +msgid "Build output cannot be specified for allocation of untracked parts" +msgstr "" + +#: build/serializers.py:1030 order/serializers.py:1622 +msgid "Allocation items must be provided" +msgstr "" + +#: build/serializers.py:1093 +msgid "Stock location where parts are to be sourced (leave blank to take from any location)" +msgstr "" + +#: build/serializers.py:1101 +msgid "Exclude Location" +msgstr "" + +#: build/serializers.py:1102 +msgid "Exclude stock items from this selected location" +msgstr "" + +#: build/serializers.py:1107 +msgid "Interchangeable Stock" +msgstr "" + +#: build/serializers.py:1108 +msgid "Stock items in multiple locations can be used interchangeably" +msgstr "" + +#: build/serializers.py:1113 +msgid "Substitute Stock" +msgstr "" + +#: build/serializers.py:1114 +msgid "Allow allocation of substitute parts" +msgstr "" + +#: build/serializers.py:1119 +msgid "Optional Items" +msgstr "" + +#: build/serializers.py:1120 +msgid "Allocate optional BOM items to build order" +msgstr "" + +#: build/serializers.py:1142 +msgid "Failed to start auto-allocation task" +msgstr "" + +#: build/serializers.py:1225 +msgid "Supplier Part Number" +msgstr "" + +#: build/serializers.py:1226 company/models.py:503 +msgid "Manufacturer Part Number" +msgstr "" + +#: build/serializers.py:1227 stock/admin.py:53 stock/admin.py:176 +#: stock/serializers.py:464 +msgid "Location Name" +msgstr "" + +#: build/serializers.py:1228 +msgid "Build Reference" +msgstr "" + +#: build/serializers.py:1229 +msgid "BOM Reference" +msgstr "" + +#: build/serializers.py:1230 company/models.py:849 +#: company/templates/company/supplier_part.html:160 order/serializers.py:691 +#: stock/admin.py:229 stock/models.py:822 stock/serializers.py:1586 +#: stock/templates/stock/item_base.html:236 +#: templates/js/translated/company.js:1646 +#: templates/js/translated/purchase_order.js:1169 +#: templates/js/translated/purchase_order.js:1332 +#: templates/js/translated/stock.js:1214 templates/js/translated/stock.js:1246 +#: templates/js/translated/stock.js:2510 +msgid "Packaging" +msgstr "" + +#: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 +msgid "Part ID" +msgstr "" + +#: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 +#: part/models.py:4104 +msgid "Part IPN" +msgstr "" + +#: build/serializers.py:1236 build/serializers.py:1326 part/admin.py:45 +#: part/stocktake.py:220 +msgid "Part Description" +msgstr "" + +#: build/serializers.py:1239 +msgid "BOM Part ID" +msgstr "" + +#: build/serializers.py:1240 +msgid "BOM Part Name" +msgstr "" + +#: build/serializers.py:1243 +#: report/templates/report/inventree_return_order_report.html:25 +#: report/templates/report/inventree_test_report.html:88 stock/models.py:849 +#: stock/serializers.py:152 stock/templates/stock/item_base.html:307 +#: templates/js/translated/build.js:523 templates/js/translated/build.js:1543 +#: templates/js/translated/build.js:2530 +#: templates/js/translated/model_renderers.js:231 +#: templates/js/translated/return_order.js:539 +#: templates/js/translated/return_order.js:722 +#: templates/js/translated/sales_order.js:315 +#: templates/js/translated/sales_order.js:1647 +#: templates/js/translated/sales_order.js:1732 +#: templates/js/translated/stock.js:602 +msgid "Serial Number" +msgstr "" + +#: build/serializers.py:1256 stock/serializers.py:600 +#: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 +#: templates/js/translated/build.js:2519 +msgid "Allocated Quantity" +msgstr "" + +#: build/serializers.py:1257 stock/templates/stock/item_base.html:336 +msgid "Available Quantity" +msgstr "" + +#: build/serializers.py:1327 +msgid "Part Category ID" +msgstr "" + +#: build/serializers.py:1328 +msgid "Part Category Name" +msgstr "" + +#: build/serializers.py:1335 common/models.py:1515 part/admin.py:113 +#: part/models.py:1178 templates/js/translated/table_filters.js:150 +#: templates/js/translated/table_filters.js:230 +#: templates/js/translated/table_filters.js:783 +msgid "Trackable" +msgstr "" + +#: build/serializers.py:1336 +msgid "Inherited" +msgstr "" + +#: build/serializers.py:1337 part/models.py:4313 +#: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 +#: templates/js/translated/build.js:2714 +msgid "Allow Variants" +msgstr "" + +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 +#: stock/api.py:793 +msgid "BOM Item" +msgstr "" + +#: build/serializers.py:1350 build/templates/build/detail.html:236 +#: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 +msgid "Allocated Stock" +msgstr "" + +#: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132 +#: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621 +#: part/templates/part/part_base.html:210 templates/js/translated/bom.js:1208 +#: templates/js/translated/build.js:2807 templates/js/translated/part.js:712 +#: templates/js/translated/part.js:2155 +#: templates/js/translated/table_filters.js:177 +msgid "On Order" +msgstr "" + +#: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623 +#: templates/js/translated/build.js:2811 +#: templates/js/translated/table_filters.js:367 +msgid "In Production" +msgstr "" + +#: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648 +#: part/templates/part/part_base.html:192 +#: templates/js/translated/sales_order.js:1929 +msgid "Available Stock" +msgstr "" + +#: build/serializers.py:1369 +msgid "Available Substitute Stock" +msgstr "" + +#: build/serializers.py:1370 +msgid "Available Variant Stock" +msgstr "" + +#: build/serializers.py:1371 +msgid "Total Available Stock" +msgstr "" + +#: build/serializers.py:1372 part/serializers.py:925 +msgid "External Stock" +msgstr "" + +#: build/status_codes.py:11 generic/states/tests.py:21 +#: generic/states/tests.py:131 order/status_codes.py:12 +#: order/status_codes.py:42 order/status_codes.py:74 order/status_codes.py:98 +#: templates/js/translated/table_filters.js:601 +msgid "Pending" +msgstr "" + +#: build/status_codes.py:12 +msgid "Production" +msgstr "" + +#: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 +#: order/status_codes.py:79 +msgid "On Hold" +msgstr "" + +#: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 +#: order/status_codes.py:82 +msgid "Cancelled" +msgstr "" + +#: build/status_codes.py:15 generic/states/tests.py:23 importer/models.py:510 +#: importer/status_codes.py:27 order/status_codes.py:15 +#: order/status_codes.py:50 order/status_codes.py:81 +#: order/templates/order/order_base.html:163 +#: order/templates/order/sales_order_base.html:168 report/models.py:451 +msgid "Complete" +msgstr "" + +#: build/tasks.py:180 +msgid "Stock required for build order" +msgstr "" + +#: build/tasks.py:233 +msgid "Overdue Build Order" +msgstr "" + +#: build/tasks.py:238 +#, python-brace-format +msgid "Build order {bo} is now overdue" +msgstr "" + +#: build/templates/build/build_base.html:18 +msgid "Part thumbnail" +msgstr "" + +#: build/templates/build/build_base.html:38 +#: company/templates/company/supplier_part.html:35 +#: order/templates/order/order_base.html:29 +#: order/templates/order/return_order_base.html:38 +#: order/templates/order/sales_order_base.html:38 +#: part/templates/part/part_base.html:41 +#: stock/templates/stock/item_base.html:40 +#: stock/templates/stock/location.html:52 +#: templates/js/translated/filters.js:338 +msgid "Barcode actions" +msgstr "" + +#: build/templates/build/build_base.html:42 +#: company/templates/company/supplier_part.html:39 +#: order/templates/order/order_base.html:33 +#: order/templates/order/return_order_base.html:42 +#: order/templates/order/sales_order_base.html:42 +#: part/templates/part/part_base.html:44 +#: stock/templates/stock/item_base.html:44 +#: stock/templates/stock/location.html:54 templates/qr_button.html:1 +msgid "Show QR Code" +msgstr "" + +#: build/templates/build/build_base.html:45 +#: company/templates/company/supplier_part.html:41 +#: order/templates/order/order_base.html:36 +#: order/templates/order/return_order_base.html:45 +#: order/templates/order/sales_order_base.html:45 +#: part/templates/part/part_base.html:47 +#: stock/templates/stock/item_base.html:47 +#: stock/templates/stock/location.html:56 +#: templates/js/translated/barcode.js:527 +#: templates/js/translated/barcode.js:532 +msgid "Unlink Barcode" +msgstr "" + +#: build/templates/build/build_base.html:47 +#: company/templates/company/supplier_part.html:43 +#: order/templates/order/order_base.html:38 +#: order/templates/order/return_order_base.html:47 +#: order/templates/order/sales_order_base.html:47 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:49 +#: stock/templates/stock/location.html:58 +msgid "Link Barcode" +msgstr "" + +#: build/templates/build/build_base.html:56 +#: order/templates/order/order_base.html:46 +#: order/templates/order/return_order_base.html:55 +#: order/templates/order/sales_order_base.html:55 +msgid "Print actions" +msgstr "" + +#: build/templates/build/build_base.html:60 +msgid "Print build order report" +msgstr "" + +#: build/templates/build/build_base.html:67 +msgid "Build actions" +msgstr "" + +#: build/templates/build/build_base.html:71 +msgid "Edit Build" +msgstr "" + +#: build/templates/build/build_base.html:73 +msgid "Duplicate Build" +msgstr "" + +#: build/templates/build/build_base.html:76 +msgid "Hold Build" +msgstr "" + +#: build/templates/build/build_base.html:79 +msgid "Cancel Build" +msgstr "" + +#: build/templates/build/build_base.html:82 +msgid "Delete Build" +msgstr "" + +#: build/templates/build/build_base.html:87 +#: build/templates/build/build_base.html:88 +msgid "Issue Build" +msgstr "" + +#: build/templates/build/build_base.html:91 +#: build/templates/build/build_base.html:92 +msgid "Complete Build" +msgstr "" + +#: build/templates/build/build_base.html:115 +msgid "Build Description" +msgstr "" + +#: build/templates/build/build_base.html:125 +msgid "No build outputs have been created for this build order" +msgstr "" + +#: build/templates/build/build_base.html:132 +msgid "Build Order is ready to mark as completed" +msgstr "" + +#: build/templates/build/build_base.html:137 +msgid "Build Order cannot be completed as outstanding outputs remain" +msgstr "" + +#: build/templates/build/build_base.html:142 +msgid "Required build quantity has not yet been completed" +msgstr "" + +#: build/templates/build/build_base.html:147 +msgid "Stock has not been fully allocated to this Build Order" +msgstr "" + +#: build/templates/build/build_base.html:168 +#: build/templates/build/detail.html:138 order/models.py:309 +#: order/models.py:1384 order/serializers.py:177 +#: order/templates/order/order_base.html:191 +#: order/templates/order/return_order_base.html:167 +#: order/templates/order/sales_order_base.html:199 +#: report/templates/report/inventree_build_order_report.html:125 +#: templates/js/translated/build.js:2414 templates/js/translated/part.js:1837 +#: templates/js/translated/purchase_order.js:1809 +#: templates/js/translated/purchase_order.js:2217 +#: templates/js/translated/return_order.js:346 +#: templates/js/translated/return_order.js:749 +#: templates/js/translated/sales_order.js:871 +#: templates/js/translated/sales_order.js:1903 +msgid "Target Date" +msgstr "" + +#: build/templates/build/build_base.html:173 +#, python-format +msgid "This build was due on %(target)s" +msgstr "" + +#: build/templates/build/build_base.html:173 +#: build/templates/build/build_base.html:230 +#: order/templates/order/order_base.html:127 +#: order/templates/order/return_order_base.html:120 +#: order/templates/order/sales_order_base.html:129 +#: templates/js/translated/table_filters.js:97 +#: templates/js/translated/table_filters.js:545 +#: templates/js/translated/table_filters.js:629 +#: templates/js/translated/table_filters.js:670 +msgid "Overdue" +msgstr "" + +#: build/templates/build/build_base.html:185 +#: build/templates/build/detail.html:67 build/templates/build/sidebar.html:13 +msgid "Completed Outputs" +msgstr "" + +#: build/templates/build/build_base.html:198 +#: build/templates/build/detail.html:101 order/api.py:1393 order/models.py:893 +#: order/models.py:1643 order/models.py:1758 order/models.py:1917 +#: order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:28 +#: report/templates/report/inventree_build_order_report.html:135 +#: report/templates/report/inventree_sales_order_report.html:14 +#: stock/templates/stock/item_base.html:365 +#: templates/email/overdue_sales_order.html:15 +#: templates/js/translated/pricing.js:929 +#: templates/js/translated/sales_order.js:805 +#: templates/js/translated/sales_order.js:1028 +#: templates/js/translated/stock.js:3009 +msgid "Sales Order" +msgstr "" + +#: build/templates/build/build_base.html:219 +#: build/templates/build/detail.html:94 templates/js/translated/build.js:2331 +msgid "Priority" +msgstr "" + +#: build/templates/build/build_base.html:267 +msgid "Issue Build Order" +msgstr "" + +#: build/templates/build/build_base.html:271 +msgid "Issue this Build Order?" +msgstr "" + +#: build/templates/build/build_base.html:302 +msgid "Delete Build Order" +msgstr "" + +#: build/templates/build/build_base.html:312 +msgid "Build Order QR Code" +msgstr "" + +#: build/templates/build/build_base.html:324 +msgid "Link Barcode to Build Order" +msgstr "" + +#: build/templates/build/detail.html:15 +msgid "Build Details" +msgstr "" + +#: build/templates/build/detail.html:38 +msgid "Stock Source" +msgstr "" + +#: build/templates/build/detail.html:43 +msgid "Stock can be taken from any available location." +msgstr "" + +#: build/templates/build/detail.html:49 order/models.py:1525 +#: templates/js/translated/purchase_order.js:2259 +msgid "Destination" +msgstr "" + +#: build/templates/build/detail.html:56 +msgid "Destination location not specified" +msgstr "" + +#: build/templates/build/detail.html:73 +msgid "Allocated Parts" +msgstr "" + +#: build/templates/build/detail.html:80 stock/admin.py:163 +#: stock/templates/stock/item_base.html:158 +#: templates/js/translated/build.js:1556 +#: templates/js/translated/model_renderers.js:242 +#: templates/js/translated/purchase_order.js:1326 +#: templates/js/translated/stock.js:1139 templates/js/translated/stock.js:1240 +#: templates/js/translated/stock.js:2276 templates/js/translated/stock.js:3212 +#: templates/js/translated/table_filters.js:320 +#: templates/js/translated/table_filters.js:411 +msgid "Batch" +msgstr "" + +#: build/templates/build/detail.html:133 +#: order/templates/order/order_base.html:178 +#: order/templates/order/return_order_base.html:154 +#: order/templates/order/sales_order_base.html:193 +#: templates/js/translated/build.js:2374 +msgid "Created" +msgstr "" + +#: build/templates/build/detail.html:144 +msgid "No target date set" +msgstr "" + +#: build/templates/build/detail.html:149 +#: order/templates/order/sales_order_base.html:209 +#: templates/js/translated/table_filters.js:692 +msgid "Completed" +msgstr "" + +#: build/templates/build/detail.html:153 +msgid "Build not complete" +msgstr "" + +#: build/templates/build/detail.html:164 build/templates/build/sidebar.html:21 +msgid "Child Build Orders" +msgstr "" + +#: build/templates/build/detail.html:177 +msgid "Build Order Line Items" +msgstr "" + +#: build/templates/build/detail.html:181 +msgid "Deallocate stock" +msgstr "" + +#: build/templates/build/detail.html:182 +msgid "Deallocate Stock" +msgstr "" + +#: build/templates/build/detail.html:184 +msgid "Automatically allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:185 +msgid "Auto Allocate" +msgstr "" + +#: build/templates/build/detail.html:187 +msgid "Manually allocate stock to build" +msgstr "" + +#: build/templates/build/detail.html:188 +msgid "Allocate Stock" +msgstr "" + +#: build/templates/build/detail.html:191 +msgid "Order required parts" +msgstr "" + +#: build/templates/build/detail.html:192 +#: templates/js/translated/purchase_order.js:795 +msgid "Order Parts" +msgstr "" + +#: build/templates/build/detail.html:205 +msgid "Available stock has been filtered based on specified source location for this build order" +msgstr "" + +#: build/templates/build/detail.html:215 +msgid "Incomplete Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:219 +msgid "Create new build output" +msgstr "" + +#: build/templates/build/detail.html:220 +msgid "New Build Output" +msgstr "" + +#: build/templates/build/detail.html:249 build/templates/build/sidebar.html:19 +msgid "Consumed Stock" +msgstr "" + +#: build/templates/build/detail.html:261 +msgid "Completed Build Outputs" +msgstr "" + +#: build/templates/build/detail.html:273 +msgid "Build test statistics" +msgstr "" + +#: build/templates/build/detail.html:288 build/templates/build/sidebar.html:27 +#: company/templates/company/detail.html:229 +#: company/templates/company/manufacturer_part.html:141 +#: company/templates/company/manufacturer_part_sidebar.html:9 +#: company/templates/company/sidebar.html:39 +#: order/templates/order/po_sidebar.html:9 +#: order/templates/order/purchase_order_detail.html:84 +#: order/templates/order/return_order_detail.html:70 +#: order/templates/order/return_order_sidebar.html:7 +#: order/templates/order/sales_order_detail.html:124 +#: order/templates/order/so_sidebar.html:15 part/templates/part/detail.html:233 +#: part/templates/part/part_sidebar.html:63 stock/templates/stock/item.html:110 +#: stock/templates/stock/stock_sidebar.html:23 +msgid "Attachments" +msgstr "" + +#: build/templates/build/detail.html:303 +msgid "Build Notes" +msgstr "" + +#: build/templates/build/detail.html:458 +msgid "Allocation Complete" +msgstr "" + +#: build/templates/build/detail.html:459 +msgid "All lines have been fully allocated" +msgstr "" + +#: build/templates/build/index.html:18 part/templates/part/detail.html:335 +msgid "New Build Order" +msgstr "" + +#: build/templates/build/sidebar.html:5 +msgid "Build Order Details" +msgstr "" + +#: build/templates/build/sidebar.html:8 order/serializers.py:83 +#: order/templates/order/po_sidebar.html:5 +#: order/templates/order/return_order_detail.html:18 +#: order/templates/order/so_sidebar.html:5 +#: report/templates/report/inventree_purchase_order_report.html:22 +#: report/templates/report/inventree_return_order_report.html:19 +#: report/templates/report/inventree_sales_order_report.html:22 +msgid "Line Items" +msgstr "" + +#: build/templates/build/sidebar.html:10 +msgid "Incomplete Outputs" +msgstr "" + +#: build/templates/build/sidebar.html:24 +#: part/templates/part/part_sidebar.html:56 +msgid "Test Statistics" +msgstr "" + +#: common/api.py:725 +msgid "Is Link" +msgstr "" + +#: common/api.py:733 +msgid "Is File" +msgstr "" + +#: common/api.py:776 +msgid "User does not have permission to delete these attachments" +msgstr "" + +#: common/api.py:793 +msgid "User does not have permission to delete this attachment" +msgstr "" + +#: common/currency.py:132 +msgid "Invalid currency code" +msgstr "" + +#: common/currency.py:134 +msgid "Duplicate currency code" +msgstr "" + +#: common/currency.py:139 +msgid "No valid currency codes provided" +msgstr "" + +#: common/currency.py:156 +msgid "No plugin" +msgstr "" + +#: common/files.py:63 +#, python-brace-format +msgid "Unsupported file format: {fmt}" +msgstr "" + +#: common/files.py:65 +msgid "Error reading file (invalid encoding)" +msgstr "" + +#: common/files.py:70 +msgid "Error reading file (invalid format)" +msgstr "" + +#: common/files.py:72 +msgid "Error reading file (incorrect dimension)" +msgstr "" + +#: common/files.py:74 +msgid "Error reading file (data could be corrupted)" +msgstr "" + +#: common/forms.py:12 +msgid "File" +msgstr "" + +#: common/forms.py:12 +msgid "Select file to upload" +msgstr "" + +#: common/forms.py:25 +msgid "{name.title()} File" +msgstr "" + +#: common/forms.py:26 +#, python-brace-format +msgid "Select {name} file to upload" +msgstr "" + +#: common/models.py:88 +msgid "Updated" +msgstr "" + +#: common/models.py:89 +msgid "Timestamp of last update" +msgstr "" + +#: common/models.py:122 +msgid "Site URL is locked by configuration" +msgstr "" + +#: common/models.py:152 +msgid "Unique project code" +msgstr "" + +#: common/models.py:159 +msgid "Project description" +msgstr "" + +#: common/models.py:168 +msgid "User or group responsible for this project" +msgstr "" + +#: common/models.py:785 +msgid "Settings key (must be unique - case insensitive)" +msgstr "" + +#: common/models.py:789 +msgid "Settings value" +msgstr "" + +#: common/models.py:841 +msgid "Chosen value is not a valid option" +msgstr "" + +#: common/models.py:857 +msgid "Value must be a boolean value" +msgstr "" + +#: common/models.py:865 +msgid "Value must be an integer value" +msgstr "" + +#: common/models.py:902 +msgid "Key string must be unique" +msgstr "" + +#: common/models.py:1134 +msgid "No group" +msgstr "" + +#: common/models.py:1233 +msgid "Restart required" +msgstr "" + +#: common/models.py:1235 +msgid "A setting has been changed which requires a server restart" +msgstr "" + +#: common/models.py:1242 +msgid "Pending migrations" +msgstr "" + +#: common/models.py:1243 +msgid "Number of pending database migrations" +msgstr "" + +#: common/models.py:1248 +msgid "Server Instance Name" +msgstr "" + +#: common/models.py:1250 +msgid "String descriptor for the server instance" +msgstr "" + +#: common/models.py:1254 +msgid "Use instance name" +msgstr "" + +#: common/models.py:1255 +msgid "Use the instance name in the title-bar" +msgstr "" + +#: common/models.py:1260 +msgid "Restrict showing `about`" +msgstr "" + +#: common/models.py:1261 +msgid "Show the `about` modal only to superusers" +msgstr "" + +#: common/models.py:1266 company/models.py:108 company/models.py:109 +msgid "Company name" +msgstr "" + +#: common/models.py:1267 +msgid "Internal company name" +msgstr "" + +#: common/models.py:1271 +msgid "Base URL" +msgstr "" + +#: common/models.py:1272 +msgid "Base URL for server instance" +msgstr "" + +#: common/models.py:1278 +msgid "Default Currency" +msgstr "" + +#: common/models.py:1279 +msgid "Select base currency for pricing calculations" +msgstr "" + +#: common/models.py:1285 +msgid "Supported Currencies" +msgstr "" + +#: common/models.py:1286 +msgid "List of supported currency codes" +msgstr "" + +#: common/models.py:1292 +msgid "Currency Update Interval" +msgstr "" + +#: common/models.py:1294 +msgid "How often to update exchange rates (set to zero to disable)" +msgstr "" + +#: common/models.py:1297 common/models.py:1353 common/models.py:1366 +#: common/models.py:1374 common/models.py:1383 common/models.py:1392 +#: common/models.py:1629 common/models.py:1651 common/models.py:1752 +#: common/models.py:2141 +msgid "days" +msgstr "" + +#: common/models.py:1301 +msgid "Currency Update Plugin" +msgstr "" + +#: common/models.py:1302 +msgid "Currency update plugin to use" +msgstr "" + +#: common/models.py:1307 +msgid "Download from URL" +msgstr "" + +#: common/models.py:1309 +msgid "Allow download of remote images and files from external URL" +msgstr "" + +#: common/models.py:1315 +msgid "Download Size Limit" +msgstr "" + +#: common/models.py:1316 +msgid "Maximum allowable download size for remote image" +msgstr "" + +#: common/models.py:1322 +msgid "User-agent used to download from URL" +msgstr "" + +#: common/models.py:1324 +msgid "Allow to override the user-agent used to download images and files from external URL (leave blank for the default)" +msgstr "" + +#: common/models.py:1329 +msgid "Strict URL Validation" +msgstr "" + +#: common/models.py:1330 +msgid "Require schema specification when validating URLs" +msgstr "" + +#: common/models.py:1335 +msgid "Require confirm" +msgstr "" + +#: common/models.py:1336 +msgid "Require explicit user confirmation for certain action." +msgstr "" + +#: common/models.py:1341 +msgid "Tree Depth" +msgstr "" + +#: common/models.py:1343 +msgid "Default tree depth for treeview. Deeper levels can be lazy loaded as they are needed." +msgstr "" + +#: common/models.py:1349 +msgid "Update Check Interval" +msgstr "" + +#: common/models.py:1350 +msgid "How often to check for updates (set to zero to disable)" +msgstr "" + +#: common/models.py:1356 +msgid "Automatic Backup" +msgstr "" + +#: common/models.py:1357 +msgid "Enable automatic backup of database and media files" +msgstr "" + +#: common/models.py:1362 +msgid "Auto Backup Interval" +msgstr "" + +#: common/models.py:1363 +msgid "Specify number of days between automated backup events" +msgstr "" + +#: common/models.py:1369 +msgid "Task Deletion Interval" +msgstr "" + +#: common/models.py:1371 +msgid "Background task results will be deleted after specified number of days" +msgstr "" + +#: common/models.py:1378 +msgid "Error Log Deletion Interval" +msgstr "" + +#: common/models.py:1380 +msgid "Error logs will be deleted after specified number of days" +msgstr "" + +#: common/models.py:1387 +msgid "Notification Deletion Interval" +msgstr "" + +#: common/models.py:1389 +msgid "User notifications will be deleted after specified number of days" +msgstr "" + +#: common/models.py:1396 templates/InvenTree/settings/sidebar.html:31 +msgid "Barcode Support" +msgstr "" + +#: common/models.py:1397 +msgid "Enable barcode scanner support in the web interface" +msgstr "" + +#: common/models.py:1402 +msgid "Barcode Input Delay" +msgstr "" + +#: common/models.py:1403 +msgid "Barcode input processing delay time" +msgstr "" + +#: common/models.py:1409 +msgid "Barcode Webcam Support" +msgstr "" + +#: common/models.py:1410 +msgid "Allow barcode scanning via webcam in browser" +msgstr "" + +#: common/models.py:1415 +msgid "Barcode Show Data" +msgstr "" + +#: common/models.py:1416 +msgid "Display barcode data in browser as text" +msgstr "" + +#: common/models.py:1421 +msgid "Barcode Generation Plugin" +msgstr "" + +#: common/models.py:1422 +msgid "Plugin to use for internal barcode data generation" +msgstr "" + +#: common/models.py:1427 +msgid "Part Revisions" +msgstr "" + +#: common/models.py:1428 +msgid "Enable revision field for Part" +msgstr "" + +#: common/models.py:1433 +msgid "Assembly Revision Only" +msgstr "" + +#: common/models.py:1434 +msgid "Only allow revisions for assembly parts" +msgstr "" + +#: common/models.py:1439 +msgid "Allow Deletion from Assembly" +msgstr "" + +#: common/models.py:1440 +msgid "Allow deletion of parts which are used in an assembly" +msgstr "" + +#: common/models.py:1445 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:1446 +msgid "Regular expression pattern for matching Part IPN" +msgstr "" + +#: common/models.py:1449 +msgid "Allow Duplicate IPN" +msgstr "" + +#: common/models.py:1450 +msgid "Allow multiple parts to share the same IPN" +msgstr "" + +#: common/models.py:1455 +msgid "Allow Editing IPN" +msgstr "" + +#: common/models.py:1456 +msgid "Allow changing the IPN value while editing a part" +msgstr "" + +#: common/models.py:1461 +msgid "Copy Part BOM Data" +msgstr "" + +#: common/models.py:1462 +msgid "Copy BOM data by default when duplicating a part" +msgstr "" + +#: common/models.py:1467 +msgid "Copy Part Parameter Data" +msgstr "" + +#: common/models.py:1468 +msgid "Copy parameter data by default when duplicating a part" +msgstr "" + +#: common/models.py:1473 +msgid "Copy Part Test Data" +msgstr "" + +#: common/models.py:1474 +msgid "Copy test data by default when duplicating a part" +msgstr "" + +#: common/models.py:1479 +msgid "Copy Category Parameter Templates" +msgstr "" + +#: common/models.py:1480 +msgid "Copy category parameter templates when creating a part" +msgstr "" + +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 +#: report/models.py:301 report/models.py:368 report/serializers.py:91 +#: report/serializers.py:132 stock/serializers.py:233 +#: templates/js/translated/table_filters.js:138 +#: templates/js/translated/table_filters.js:775 +msgid "Template" +msgstr "" + +#: common/models.py:1486 +msgid "Parts are templates by default" +msgstr "" + +#: common/models.py:1492 +msgid "Parts can be assembled from other components by default" +msgstr "" + +#: common/models.py:1497 part/admin.py:95 part/models.py:1172 +#: part/serializers.py:1615 templates/js/translated/table_filters.js:737 +msgid "Component" +msgstr "" + +#: common/models.py:1498 +msgid "Parts can be used as sub-components by default" +msgstr "" + +#: common/models.py:1503 part/admin.py:100 part/models.py:1190 +msgid "Purchaseable" +msgstr "" + +#: common/models.py:1504 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:1509 part/admin.py:104 part/models.py:1196 +#: templates/js/translated/table_filters.js:763 +msgid "Salable" +msgstr "" + +#: common/models.py:1510 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:1516 +msgid "Parts are trackable by default" +msgstr "" + +#: common/models.py:1521 part/admin.py:117 part/models.py:1212 +#: part/templates/part/part_base.html:154 +#: templates/js/translated/table_filters.js:142 +#: templates/js/translated/table_filters.js:787 +msgid "Virtual" +msgstr "" + +#: common/models.py:1522 +msgid "Parts are virtual by default" +msgstr "" + +#: common/models.py:1527 +msgid "Show Import in Views" +msgstr "" + +#: common/models.py:1528 +msgid "Display the import wizard in some part views" +msgstr "" + +#: common/models.py:1533 +msgid "Show related parts" +msgstr "" + +#: common/models.py:1534 +msgid "Display related parts for a part" +msgstr "" + +#: common/models.py:1539 +msgid "Initial Stock Data" +msgstr "" + +#: common/models.py:1540 +msgid "Allow creation of initial stock when adding a new part" +msgstr "" + +#: common/models.py:1545 templates/js/translated/part.js:108 +msgid "Initial Supplier Data" +msgstr "" + +#: common/models.py:1547 +msgid "Allow creation of initial supplier data when adding a new part" +msgstr "" + +#: common/models.py:1553 +msgid "Part Name Display Format" +msgstr "" + +#: common/models.py:1554 +msgid "Format to display the part name" +msgstr "" + +#: common/models.py:1560 +msgid "Part Category Default Icon" +msgstr "" + +#: common/models.py:1561 +msgid "Part category default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1566 +msgid "Enforce Parameter Units" +msgstr "" + +#: common/models.py:1568 +msgid "If units are provided, parameter values must match the specified units" +msgstr "" + +#: common/models.py:1574 +msgid "Minimum Pricing Decimal Places" +msgstr "" + +#: common/models.py:1576 +msgid "Minimum number of decimal places to display when rendering pricing data" +msgstr "" + +#: common/models.py:1587 +msgid "Maximum Pricing Decimal Places" +msgstr "" + +#: common/models.py:1589 +msgid "Maximum number of decimal places to display when rendering pricing data" +msgstr "" + +#: common/models.py:1600 +msgid "Use Supplier Pricing" +msgstr "" + +#: common/models.py:1602 +msgid "Include supplier price breaks in overall pricing calculations" +msgstr "" + +#: common/models.py:1608 +msgid "Purchase History Override" +msgstr "" + +#: common/models.py:1610 +msgid "Historical purchase order pricing overrides supplier price breaks" +msgstr "" + +#: common/models.py:1616 +msgid "Use Stock Item Pricing" +msgstr "" + +#: common/models.py:1618 +msgid "Use pricing from manually entered stock data for pricing calculations" +msgstr "" + +#: common/models.py:1624 +msgid "Stock Item Pricing Age" +msgstr "" + +#: common/models.py:1626 +msgid "Exclude stock items older than this number of days from pricing calculations" +msgstr "" + +#: common/models.py:1633 +msgid "Use Variant Pricing" +msgstr "" + +#: common/models.py:1634 +msgid "Include variant pricing in overall pricing calculations" +msgstr "" + +#: common/models.py:1639 +msgid "Active Variants Only" +msgstr "" + +#: common/models.py:1641 +msgid "Only use active variant parts for calculating variant pricing" +msgstr "" + +#: common/models.py:1647 +msgid "Pricing Rebuild Interval" +msgstr "" + +#: common/models.py:1649 +msgid "Number of days before part pricing is automatically updated" +msgstr "" + +#: common/models.py:1656 +msgid "Internal Prices" +msgstr "" + +#: common/models.py:1657 +msgid "Enable internal prices for parts" +msgstr "" + +#: common/models.py:1662 +msgid "Internal Price Override" +msgstr "" + +#: common/models.py:1664 +msgid "If available, internal prices override price range calculations" +msgstr "" + +#: common/models.py:1670 +msgid "Enable label printing" +msgstr "" + +#: common/models.py:1671 +msgid "Enable label printing from the web interface" +msgstr "" + +#: common/models.py:1676 +msgid "Label Image DPI" +msgstr "" + +#: common/models.py:1678 +msgid "DPI resolution when generating image files to supply to label printing plugins" +msgstr "" + +#: common/models.py:1684 +msgid "Enable Reports" +msgstr "" + +#: common/models.py:1685 +msgid "Enable generation of reports" +msgstr "" + +#: common/models.py:1690 templates/stats.html:25 +msgid "Debug Mode" +msgstr "" + +#: common/models.py:1691 +msgid "Generate reports in debug mode (HTML output)" +msgstr "" + +#: common/models.py:1696 +msgid "Log Report Errors" +msgstr "" + +#: common/models.py:1697 +msgid "Log errors which occur when generating reports" +msgstr "" + +#: common/models.py:1702 plugin/builtin/labels/label_sheet.py:28 +#: report/models.py:309 +msgid "Page Size" +msgstr "" + +#: common/models.py:1703 +msgid "Default page size for PDF reports" +msgstr "" + +#: common/models.py:1708 +msgid "Globally Unique Serials" +msgstr "" + +#: common/models.py:1709 +msgid "Serial numbers for stock items must be globally unique" +msgstr "" + +#: common/models.py:1714 +msgid "Autofill Serial Numbers" +msgstr "" + +#: common/models.py:1715 +msgid "Autofill serial numbers in forms" +msgstr "" + +#: common/models.py:1720 +msgid "Delete Depleted Stock" +msgstr "" + +#: common/models.py:1722 +msgid "Determines default behavior when a stock item is depleted" +msgstr "" + +#: common/models.py:1728 +msgid "Batch Code Template" +msgstr "" + +#: common/models.py:1730 +msgid "Template for generating default batch codes for stock items" +msgstr "" + +#: common/models.py:1735 +msgid "Stock Expiry" +msgstr "" + +#: common/models.py:1736 +msgid "Enable stock expiry functionality" +msgstr "" + +#: common/models.py:1741 +msgid "Sell Expired Stock" +msgstr "" + +#: common/models.py:1742 +msgid "Allow sale of expired stock" +msgstr "" + +#: common/models.py:1747 +msgid "Stock Stale Time" +msgstr "" + +#: common/models.py:1749 +msgid "Number of days stock items are considered stale before expiring" +msgstr "" + +#: common/models.py:1756 +msgid "Build Expired Stock" +msgstr "" + +#: common/models.py:1757 +msgid "Allow building with expired stock" +msgstr "" + +#: common/models.py:1762 +msgid "Stock Ownership Control" +msgstr "" + +#: common/models.py:1763 +msgid "Enable ownership control over stock locations and items" +msgstr "" + +#: common/models.py:1768 +msgid "Stock Location Default Icon" +msgstr "" + +#: common/models.py:1769 +msgid "Stock location default icon (empty means no icon)" +msgstr "" + +#: common/models.py:1774 +msgid "Show Installed Stock Items" +msgstr "" + +#: common/models.py:1775 +msgid "Display installed stock items in stock tables" +msgstr "" + +#: common/models.py:1780 +msgid "Check BOM when installing items" +msgstr "" + +#: common/models.py:1782 +msgid "Installed stock items must exist in the BOM for the parent part" +msgstr "" + +#: common/models.py:1788 +msgid "Allow Out of Stock Transfer" +msgstr "" + +#: common/models.py:1790 +msgid "Allow stock items which are not in stock to be transferred between stock locations" +msgstr "" + +#: common/models.py:1796 +msgid "Build Order Reference Pattern" +msgstr "" + +#: common/models.py:1798 +msgid "Required pattern for generating Build Order reference field" +msgstr "" + +#: common/models.py:1804 common/models.py:1860 common/models.py:1882 +#: common/models.py:1918 +msgid "Require Responsible Owner" +msgstr "" + +#: common/models.py:1805 common/models.py:1861 common/models.py:1883 +#: common/models.py:1919 +msgid "A responsible owner must be assigned to each order" +msgstr "" + +#: common/models.py:1810 +msgid "Require Active Part" +msgstr "" + +#: common/models.py:1811 +msgid "Prevent build order creation for inactive parts" +msgstr "" + +#: common/models.py:1816 +msgid "Require Locked Part" +msgstr "" + +#: common/models.py:1817 +msgid "Prevent build order creation for unlocked parts" +msgstr "" + +#: common/models.py:1822 +msgid "Require Valid BOM" +msgstr "" + +#: common/models.py:1824 +msgid "Prevent build order creation unless BOM has been validated" +msgstr "" + +#: common/models.py:1830 +msgid "Require Closed Child Orders" +msgstr "" + +#: common/models.py:1832 +msgid "Prevent build order completion until all child orders are closed" +msgstr "" + +#: common/models.py:1838 +msgid "Block Until Tests Pass" +msgstr "" + +#: common/models.py:1840 +msgid "Prevent build outputs from being completed until all required tests pass" +msgstr "" + +#: common/models.py:1846 +msgid "Enable Return Orders" +msgstr "" + +#: common/models.py:1847 +msgid "Enable return order functionality in the user interface" +msgstr "" + +#: common/models.py:1852 +msgid "Return Order Reference Pattern" +msgstr "" + +#: common/models.py:1854 +msgid "Required pattern for generating Return Order reference field" +msgstr "" + +#: common/models.py:1866 +msgid "Edit Completed Return Orders" +msgstr "" + +#: common/models.py:1868 +msgid "Allow editing of return orders after they have been completed" +msgstr "" + +#: common/models.py:1874 +msgid "Sales Order Reference Pattern" +msgstr "" + +#: common/models.py:1876 +msgid "Required pattern for generating Sales Order reference field" +msgstr "" + +#: common/models.py:1888 +msgid "Sales Order Default Shipment" +msgstr "" + +#: common/models.py:1889 +msgid "Enable creation of default shipment with sales orders" +msgstr "" + +#: common/models.py:1894 +msgid "Edit Completed Sales Orders" +msgstr "" + +#: common/models.py:1896 +msgid "Allow editing of sales orders after they have been shipped or completed" +msgstr "" + +#: common/models.py:1902 +msgid "Mark Shipped Orders as Complete" +msgstr "" + +#: common/models.py:1904 +msgid "Sales orders marked as shipped will automatically be completed, bypassing the \"shipped\" status" +msgstr "" + +#: common/models.py:1910 +msgid "Purchase Order Reference Pattern" +msgstr "" + +#: common/models.py:1912 +msgid "Required pattern for generating Purchase Order reference field" +msgstr "" + +#: common/models.py:1924 +msgid "Edit Completed Purchase Orders" +msgstr "" + +#: common/models.py:1926 +msgid "Allow editing of purchase orders after they have been shipped or completed" +msgstr "" + +#: common/models.py:1932 +msgid "Auto Complete Purchase Orders" +msgstr "" + +#: common/models.py:1934 +msgid "Automatically mark purchase orders as complete when all line items are received" +msgstr "" + +#: common/models.py:1941 +msgid "Enable password forgot" +msgstr "" + +#: common/models.py:1942 +msgid "Enable password forgot function on the login pages" +msgstr "" + +#: common/models.py:1947 +msgid "Enable registration" +msgstr "" + +#: common/models.py:1948 +msgid "Enable self-registration for users on the login pages" +msgstr "" + +#: common/models.py:1953 +msgid "Enable SSO" +msgstr "" + +#: common/models.py:1954 +msgid "Enable SSO on the login pages" +msgstr "" + +#: common/models.py:1959 +msgid "Enable SSO registration" +msgstr "" + +#: common/models.py:1961 +msgid "Enable self-registration via SSO for users on the login pages" +msgstr "" + +#: common/models.py:1967 +msgid "Enable SSO group sync" +msgstr "" + +#: common/models.py:1969 +msgid "Enable synchronizing InvenTree groups with groups provided by the IdP" +msgstr "" + +#: common/models.py:1975 +msgid "SSO group key" +msgstr "" + +#: common/models.py:1977 +msgid "The name of the groups claim attribute provided by the IdP" +msgstr "" + +#: common/models.py:1983 +msgid "SSO group map" +msgstr "" + +#: common/models.py:1985 +msgid "A mapping from SSO groups to local InvenTree groups. If the local group does not exist, it will be created." +msgstr "" + +#: common/models.py:1991 +msgid "Remove groups outside of SSO" +msgstr "" + +#: common/models.py:1993 +msgid "Whether groups assigned to the user should be removed if they are not backend by the IdP. Disabling this setting might cause security issues" +msgstr "" + +#: common/models.py:1999 +msgid "Email required" +msgstr "" + +#: common/models.py:2000 +msgid "Require user to supply mail on signup" +msgstr "" + +#: common/models.py:2005 +msgid "Auto-fill SSO users" +msgstr "" + +#: common/models.py:2007 +msgid "Automatically fill out user-details from SSO account-data" +msgstr "" + +#: common/models.py:2013 +msgid "Mail twice" +msgstr "" + +#: common/models.py:2014 +msgid "On signup ask users twice for their mail" +msgstr "" + +#: common/models.py:2019 +msgid "Password twice" +msgstr "" + +#: common/models.py:2020 +msgid "On signup ask users twice for their password" +msgstr "" + +#: common/models.py:2025 +msgid "Allowed domains" +msgstr "" + +#: common/models.py:2027 +msgid "Restrict signup to certain domains (comma-separated, starting with @)" +msgstr "" + +#: common/models.py:2033 +msgid "Group on signup" +msgstr "" + +#: common/models.py:2035 +msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." +msgstr "" + +#: common/models.py:2041 +msgid "Enforce MFA" +msgstr "" + +#: common/models.py:2042 +msgid "Users must use multifactor security." +msgstr "" + +#: common/models.py:2047 +msgid "Check plugins on startup" +msgstr "" + +#: common/models.py:2049 +msgid "Check that all plugins are installed on startup - enable in container environments" +msgstr "" + +#: common/models.py:2057 +msgid "Check for plugin updates" +msgstr "" + +#: common/models.py:2058 +msgid "Enable periodic checks for updates to installed plugins" +msgstr "" + +#: common/models.py:2064 +msgid "Enable URL integration" +msgstr "" + +#: common/models.py:2065 +msgid "Enable plugins to add URL routes" +msgstr "" + +#: common/models.py:2071 +msgid "Enable navigation integration" +msgstr "" + +#: common/models.py:2072 +msgid "Enable plugins to integrate into navigation" +msgstr "" + +#: common/models.py:2078 +msgid "Enable app integration" +msgstr "" + +#: common/models.py:2079 +msgid "Enable plugins to add apps" +msgstr "" + +#: common/models.py:2085 +msgid "Enable schedule integration" +msgstr "" + +#: common/models.py:2086 +msgid "Enable plugins to run scheduled tasks" +msgstr "" + +#: common/models.py:2092 +msgid "Enable event integration" +msgstr "" + +#: common/models.py:2093 +msgid "Enable plugins to respond to internal events" +msgstr "" + +#: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 +msgid "Enable project codes" +msgstr "" + +#: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 +msgid "Enable stocktake functionality for recording stock levels and calculating stock value" +msgstr "" + +#: common/models.py:2120 +msgid "Exclude External Locations" +msgstr "" + +#: common/models.py:2122 +msgid "Exclude stock items in external locations from stocktake calculations" +msgstr "" + +#: common/models.py:2128 +msgid "Automatic Stocktake Period" +msgstr "" + +#: common/models.py:2130 +msgid "Number of days between automatic stocktake recording (set to zero to disable)" +msgstr "" + +#: common/models.py:2136 +msgid "Report Deletion Interval" +msgstr "" + +#: common/models.py:2138 +msgid "Stocktake reports will be deleted after specified number of days" +msgstr "" + +#: common/models.py:2145 +msgid "Display Users full names" +msgstr "" + +#: common/models.py:2146 +msgid "Display Users full names instead of usernames" +msgstr "" + +#: common/models.py:2151 +msgid "Enable Test Station Data" +msgstr "" + +#: common/models.py:2152 +msgid "Enable test station data collection for test results" +msgstr "" + +#: common/models.py:2157 +msgid "Create Template on Upload" +msgstr "" + +#: common/models.py:2159 +msgid "Create a new test template when uploading test data which does not match an existing template" +msgstr "" + +#: common/models.py:2172 common/models.py:2552 +msgid "Settings key (must be unique - case insensitive" +msgstr "" + +#: common/models.py:2215 +msgid "Hide inactive parts" +msgstr "" + +#: common/models.py:2217 +msgid "Hide inactive parts in results displayed on the homepage" +msgstr "" + +#: common/models.py:2223 +msgid "Show subscribed parts" +msgstr "" + +#: common/models.py:2224 +msgid "Show subscribed parts on the homepage" +msgstr "" + +#: common/models.py:2229 +msgid "Show subscribed categories" +msgstr "" + +#: common/models.py:2230 +msgid "Show subscribed part categories on the homepage" +msgstr "" + +#: common/models.py:2235 +msgid "Show latest parts" +msgstr "" + +#: common/models.py:2236 +msgid "Show latest parts on the homepage" +msgstr "" + +#: common/models.py:2241 +msgid "Show invalid BOMs" +msgstr "" + +#: common/models.py:2242 +msgid "Show BOMs that await validation on the homepage" +msgstr "" + +#: common/models.py:2247 +msgid "Show recent stock changes" +msgstr "" + +#: common/models.py:2248 +msgid "Show recently changed stock items on the homepage" +msgstr "" + +#: common/models.py:2253 +msgid "Show low stock" +msgstr "" + +#: common/models.py:2254 +msgid "Show low stock items on the homepage" +msgstr "" + +#: common/models.py:2259 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:2260 +msgid "Show depleted stock items on the homepage" +msgstr "" + +#: common/models.py:2265 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:2266 +msgid "Show stock items needed for builds on the homepage" +msgstr "" + +#: common/models.py:2271 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:2272 +msgid "Show expired stock items on the homepage" +msgstr "" + +#: common/models.py:2277 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:2278 +msgid "Show stale stock items on the homepage" +msgstr "" + +#: common/models.py:2283 +msgid "Show pending builds" +msgstr "" + +#: common/models.py:2284 +msgid "Show pending builds on the homepage" +msgstr "" + +#: common/models.py:2289 +msgid "Show overdue builds" +msgstr "" + +#: common/models.py:2290 +msgid "Show overdue builds on the homepage" +msgstr "" + +#: common/models.py:2295 +msgid "Show outstanding POs" +msgstr "" + +#: common/models.py:2296 +msgid "Show outstanding POs on the homepage" +msgstr "" + +#: common/models.py:2301 +msgid "Show overdue POs" +msgstr "" + +#: common/models.py:2302 +msgid "Show overdue POs on the homepage" +msgstr "" + +#: common/models.py:2307 +msgid "Show outstanding SOs" +msgstr "" + +#: common/models.py:2308 +msgid "Show outstanding SOs on the homepage" +msgstr "" + +#: common/models.py:2313 +msgid "Show overdue SOs" +msgstr "" + +#: common/models.py:2314 +msgid "Show overdue SOs on the homepage" +msgstr "" + +#: common/models.py:2319 +msgid "Show pending SO shipments" +msgstr "" + +#: common/models.py:2320 +msgid "Show pending SO shipments on the homepage" +msgstr "" + +#: common/models.py:2325 +msgid "Show News" +msgstr "" + +#: common/models.py:2326 +msgid "Show news on the homepage" +msgstr "" + +#: common/models.py:2331 +msgid "Inline label display" +msgstr "" + +#: common/models.py:2333 +msgid "Display PDF labels in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:2339 +msgid "Default label printer" +msgstr "" + +#: common/models.py:2341 +msgid "Configure which label printer should be selected by default" +msgstr "" + +#: common/models.py:2347 +msgid "Inline report display" +msgstr "" + +#: common/models.py:2349 +msgid "Display PDF reports in the browser, instead of downloading as a file" +msgstr "" + +#: common/models.py:2355 +msgid "Search Parts" +msgstr "" + +#: common/models.py:2356 +msgid "Display parts in search preview window" +msgstr "" + +#: common/models.py:2361 +msgid "Search Supplier Parts" +msgstr "" + +#: common/models.py:2362 +msgid "Display supplier parts in search preview window" +msgstr "" + +#: common/models.py:2367 +msgid "Search Manufacturer Parts" +msgstr "" + +#: common/models.py:2368 +msgid "Display manufacturer parts in search preview window" +msgstr "" + +#: common/models.py:2373 +msgid "Hide Inactive Parts" +msgstr "" + +#: common/models.py:2374 +msgid "Excluded inactive parts from search preview window" +msgstr "" + +#: common/models.py:2379 +msgid "Search Categories" +msgstr "" + +#: common/models.py:2380 +msgid "Display part categories in search preview window" +msgstr "" + +#: common/models.py:2385 +msgid "Search Stock" +msgstr "" + +#: common/models.py:2386 +msgid "Display stock items in search preview window" +msgstr "" + +#: common/models.py:2391 +msgid "Hide Unavailable Stock Items" +msgstr "" + +#: common/models.py:2393 +msgid "Exclude stock items which are not available from the search preview window" +msgstr "" + +#: common/models.py:2399 +msgid "Search Locations" +msgstr "" + +#: common/models.py:2400 +msgid "Display stock locations in search preview window" +msgstr "" + +#: common/models.py:2405 +msgid "Search Companies" +msgstr "" + +#: common/models.py:2406 +msgid "Display companies in search preview window" +msgstr "" + +#: common/models.py:2411 +msgid "Search Build Orders" +msgstr "" + +#: common/models.py:2412 +msgid "Display build orders in search preview window" +msgstr "" + +#: common/models.py:2417 +msgid "Search Purchase Orders" +msgstr "" + +#: common/models.py:2418 +msgid "Display purchase orders in search preview window" +msgstr "" + +#: common/models.py:2423 +msgid "Exclude Inactive Purchase Orders" +msgstr "" + +#: common/models.py:2425 +msgid "Exclude inactive purchase orders from search preview window" +msgstr "" + +#: common/models.py:2431 +msgid "Search Sales Orders" +msgstr "" + +#: common/models.py:2432 +msgid "Display sales orders in search preview window" +msgstr "" + +#: common/models.py:2437 +msgid "Exclude Inactive Sales Orders" +msgstr "" + +#: common/models.py:2439 +msgid "Exclude inactive sales orders from search preview window" +msgstr "" + +#: common/models.py:2445 +msgid "Search Return Orders" +msgstr "" + +#: common/models.py:2446 +msgid "Display return orders in search preview window" +msgstr "" + +#: common/models.py:2451 +msgid "Exclude Inactive Return Orders" +msgstr "" + +#: common/models.py:2453 +msgid "Exclude inactive return orders from search preview window" +msgstr "" + +#: common/models.py:2459 +msgid "Search Preview Results" +msgstr "" + +#: common/models.py:2461 +msgid "Number of results to show in each section of the search preview window" +msgstr "" + +#: common/models.py:2467 +msgid "Regex Search" +msgstr "" + +#: common/models.py:2468 +msgid "Enable regular expressions in search queries" +msgstr "" + +#: common/models.py:2473 +msgid "Whole Word Search" +msgstr "" + +#: common/models.py:2474 +msgid "Search queries return results for whole word matches" +msgstr "" + +#: common/models.py:2479 +msgid "Show Quantity in Forms" +msgstr "" + +#: common/models.py:2480 +msgid "Display available part quantity in some forms" +msgstr "" + +#: common/models.py:2485 +msgid "Escape Key Closes Forms" +msgstr "" + +#: common/models.py:2486 +msgid "Use the escape key to close modal forms" +msgstr "" + +#: common/models.py:2491 +msgid "Fixed Navbar" +msgstr "" + +#: common/models.py:2492 +msgid "The navbar position is fixed to the top of the screen" +msgstr "" + +#: common/models.py:2497 +msgid "Date Format" +msgstr "" + +#: common/models.py:2498 +msgid "Preferred format for displaying dates" +msgstr "" + +#: common/models.py:2511 part/templates/part/detail.html:41 +msgid "Part Scheduling" +msgstr "" + +#: common/models.py:2512 +msgid "Display part scheduling information" +msgstr "" + +#: common/models.py:2517 part/templates/part/detail.html:62 +msgid "Part Stocktake" +msgstr "" + +#: common/models.py:2519 +msgid "Display part stocktake information (if stocktake functionality is enabled)" +msgstr "" + +#: common/models.py:2525 +msgid "Table String Length" +msgstr "" + +#: common/models.py:2527 +msgid "Maximum length limit for strings displayed in table views" +msgstr "" + +#: common/models.py:2533 +msgid "Receive error reports" +msgstr "" + +#: common/models.py:2534 +msgid "Receive notifications for system errors" +msgstr "" + +#: common/models.py:2539 +msgid "Last used printing machines" +msgstr "" + +#: common/models.py:2540 +msgid "Save the last used printing machines for a user" +msgstr "" + +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 +#: report/templates/report/inventree_test_report.html:105 +#: templates/js/translated/stock.js:3121 users/models.py:111 +msgid "User" +msgstr "" + +#: common/models.py:2583 +msgid "Price break quantity" +msgstr "" + +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 +#: order/models.py:1423 order/models.py:2410 +#: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 +#: templates/js/translated/pricing.js:621 +#: templates/js/translated/return_order.js:739 +msgid "Price" +msgstr "" + +#: common/models.py:2591 +msgid "Unit price at specified quantity" +msgstr "" + +#: common/models.py:2695 common/models.py:2880 +msgid "Endpoint" +msgstr "" + +#: common/models.py:2696 +msgid "Endpoint at which this webhook is received" +msgstr "" + +#: common/models.py:2706 +msgid "Name for this webhook" +msgstr "" + +#: common/models.py:2710 +msgid "Is this webhook active" +msgstr "" + +#: common/models.py:2726 users/models.py:159 +msgid "Token" +msgstr "" + +#: common/models.py:2727 +msgid "Token for access" +msgstr "" + +#: common/models.py:2735 +msgid "Secret" +msgstr "" + +#: common/models.py:2736 +msgid "Shared secret for HMAC" +msgstr "" + +#: common/models.py:2844 +msgid "Message ID" +msgstr "" + +#: common/models.py:2845 +msgid "Unique identifier for this message" +msgstr "" + +#: common/models.py:2853 +msgid "Host" +msgstr "" + +#: common/models.py:2854 +msgid "Host from which this message was received" +msgstr "" + +#: common/models.py:2862 +msgid "Header" +msgstr "" + +#: common/models.py:2863 +msgid "Header of this message" +msgstr "" + +#: common/models.py:2870 +msgid "Body" +msgstr "" + +#: common/models.py:2871 +msgid "Body of this message" +msgstr "" + +#: common/models.py:2881 +msgid "Endpoint on which this message was received" +msgstr "" + +#: common/models.py:2886 +msgid "Worked on" +msgstr "" + +#: common/models.py:2887 +msgid "Was the work on this message finished?" +msgstr "" + +#: common/models.py:3013 +msgid "Id" +msgstr "" + +#: common/models.py:3015 templates/js/translated/company.js:965 +#: templates/js/translated/news.js:44 +msgid "Title" +msgstr "" + +#: common/models.py:3017 common/models.py:3272 company/models.py:146 +#: company/models.py:443 company/models.py:509 company/models.py:815 +#: order/models.py:303 order/models.py:1378 order/models.py:1810 +#: part/admin.py:55 part/models.py:1069 +#: part/templates/part/part_scheduling.html:11 +#: report/templates/report/inventree_build_order_report.html:164 +#: stock/admin.py:230 templates/js/translated/company.js:1319 +#: templates/js/translated/company.js:1673 templates/js/translated/order.js:376 +#: templates/js/translated/part.js:2475 +#: templates/js/translated/purchase_order.js:2110 +#: templates/js/translated/purchase_order.js:2274 +#: templates/js/translated/return_order.js:778 +#: templates/js/translated/sales_order.js:1092 +#: templates/js/translated/sales_order.js:2023 +msgid "Link" +msgstr "" + +#: common/models.py:3019 templates/js/translated/news.js:60 +msgid "Published" +msgstr "" + +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 +#: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 +msgid "Author" +msgstr "" + +#: common/models.py:3023 templates/js/translated/news.js:52 +msgid "Summary" +msgstr "" + +#: common/models.py:3026 +msgid "Read" +msgstr "" + +#: common/models.py:3026 +msgid "Was this news item read?" +msgstr "" + +#: common/models.py:3043 company/models.py:156 part/models.py:1079 +#: report/templates/report/inventree_bill_of_materials_report.html:126 +#: report/templates/report/inventree_bill_of_materials_report.html:148 +#: report/templates/report/inventree_return_order_report.html:35 +#: stock/templates/stock/item_base.html:129 templates/503.html:31 +#: templates/hover_image.html:7 templates/hover_image.html:9 +#: templates/modals.html:6 +msgid "Image" +msgstr "" + +#: common/models.py:3043 +msgid "Image file" +msgstr "" + +#: common/models.py:3055 common/models.py:3256 +msgid "Target model type for this image" +msgstr "" + +#: common/models.py:3059 +msgid "Target model ID for this image" +msgstr "" + +#: common/models.py:3081 +msgid "Custom Unit" +msgstr "" + +#: common/models.py:3099 +msgid "Unit symbol must be unique" +msgstr "" + +#: common/models.py:3114 +msgid "Unit name must be a valid identifier" +msgstr "" + +#: common/models.py:3133 +msgid "Unit name" +msgstr "" + +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 +msgid "Symbol" +msgstr "" + +#: common/models.py:3141 +msgid "Optional unit symbol" +msgstr "" + +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 +msgid "Definition" +msgstr "" + +#: common/models.py:3148 +msgid "Unit definition" +msgstr "" + +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 +#: stock/serializers.py:244 templates/js/translated/attachment.js:119 +#: templates/js/translated/attachment.js:345 +msgid "Attachment" +msgstr "" + +#: common/models.py:3218 +msgid "Missing file" +msgstr "" + +#: common/models.py:3219 +msgid "Missing external link" +msgstr "" + +#: common/models.py:3264 +msgid "Select file to attach" +msgstr "" + +#: common/models.py:3279 templates/js/translated/attachment.js:120 +#: templates/js/translated/attachment.js:360 +msgid "Comment" +msgstr "" + +#: common/models.py:3280 +msgid "Attachment comment" +msgstr "" + +#: common/models.py:3296 +msgid "Upload date" +msgstr "" + +#: common/models.py:3297 +msgid "Date the file was uploaded" +msgstr "" + +#: common/models.py:3301 +msgid "File size" +msgstr "" + +#: common/models.py:3301 +msgid "File size in bytes" +msgstr "" + +#: common/models.py:3339 common/serializers.py:604 +msgid "Invalid model type specified for attachment" +msgstr "" + +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 +msgid "Key" +msgstr "" + +#: common/models.py:3349 +msgid "Value that will be saved in the models database" +msgstr "" + +#: common/models.py:3352 +msgid "Name of the state" +msgstr "" + +#: common/models.py:3356 +msgid "Label" +msgstr "" + +#: common/models.py:3357 +msgid "Label that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3363 +msgid "Color" +msgstr "" + +#: common/models.py:3364 +msgid "Color that will be displayed in the frontend" +msgstr "" + +#: common/models.py:3367 +msgid "Logical Key" +msgstr "" + +#: common/models.py:3369 +msgid "State logical key that is equal to this custom state in business logic" +msgstr "" + +#: common/models.py:3377 +msgid "Model" +msgstr "" + +#: common/models.py:3378 +msgid "Model this state is associated with" +msgstr "" + +#: common/models.py:3382 +msgid "Reference Status Set" +msgstr "" + +#: common/models.py:3383 +msgid "Status set that is extended with this custom state" +msgstr "" + +#: common/models.py:3389 +msgid "Custom State" +msgstr "" + +#: common/models.py:3390 +msgid "Custom States" +msgstr "" + +#: common/models.py:3405 +msgid "Model must be selected" +msgstr "" + +#: common/models.py:3408 +msgid "Key must be selected" +msgstr "" + +#: common/models.py:3411 +msgid "Logical key must be selected" +msgstr "" + +#: common/models.py:3415 +msgid "Key must be different from logical key" +msgstr "" + +#: common/models.py:3419 +msgid "Reference status must be selected" +msgstr "" + +#: common/models.py:3431 +msgid "Reference status set not found" +msgstr "" + +#: common/models.py:3437 +msgid "Key must be different from the logical keys of the reference status" +msgstr "" + +#: common/models.py:3443 +msgid "Logical key must be in the logical keys of the reference status" +msgstr "" + +#: common/notifications.py:310 +#, python-brace-format +msgid "New {verbose_name}" +msgstr "" + +#: common/notifications.py:312 +msgid "A new order has been created and assigned to you" +msgstr "" + +#: common/notifications.py:318 +#, python-brace-format +msgid "{verbose_name} canceled" +msgstr "" + +#: common/notifications.py:320 +msgid "A order that is assigned to you was canceled" +msgstr "" + +#: common/notifications.py:326 common/notifications.py:333 order/api.py:460 +msgid "Items Received" +msgstr "" + +#: common/notifications.py:328 +msgid "Items have been received against a purchase order" +msgstr "" + +#: common/notifications.py:335 +msgid "Items have been received against a return order" +msgstr "" + +#: common/notifications.py:453 +msgid "Error raised by plugin" +msgstr "" + +#: common/serializers.py:418 +msgid "Is Running" +msgstr "" + +#: common/serializers.py:424 +msgid "Pending Tasks" +msgstr "" + +#: common/serializers.py:430 +msgid "Scheduled Tasks" +msgstr "" + +#: common/serializers.py:436 +msgid "Failed Tasks" +msgstr "" + +#: common/serializers.py:451 +msgid "Task ID" +msgstr "" + +#: common/serializers.py:451 +msgid "Unique task ID" +msgstr "" + +#: common/serializers.py:453 +msgid "Lock" +msgstr "" + +#: common/serializers.py:453 +msgid "Lock time" +msgstr "" + +#: common/serializers.py:455 +msgid "Task name" +msgstr "" + +#: common/serializers.py:457 +msgid "Function" +msgstr "" + +#: common/serializers.py:457 +msgid "Function name" +msgstr "" + +#: common/serializers.py:459 +msgid "Arguments" +msgstr "" + +#: common/serializers.py:459 +msgid "Task arguments" +msgstr "" + +#: common/serializers.py:462 +msgid "Keyword Arguments" +msgstr "" + +#: common/serializers.py:462 +msgid "Task keyword arguments" +msgstr "" + +#: common/serializers.py:572 +msgid "Filename" +msgstr "" + +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 +msgid "Model Type" +msgstr "" + +#: common/serializers.py:607 +msgid "User does not have permission to create or edit attachments for this model" +msgstr "" + +#: common/validators.py:35 +msgid "No attachment model type provided" +msgstr "" + +#: common/validators.py:41 +msgid "Invalid attachment model type" +msgstr "" + +#: common/validators.py:82 +msgid "Minimum places cannot be greater than maximum places" +msgstr "" + +#: common/validators.py:94 +msgid "Maximum places cannot be less than minimum places" +msgstr "" + +#: common/validators.py:105 +msgid "An empty domain is not allowed." +msgstr "" + +#: common/validators.py:107 +#, python-brace-format +msgid "Invalid domain name: {domain}" +msgstr "" + +#: common/views.py:84 order/templates/order/order_wizard/po_upload.html:51 +#: order/templates/order/purchase_order_detail.html:24 order/views.py:118 +#: part/templates/part/import_wizard/part_upload.html:58 part/views.py:109 +#: templates/patterns/wizard/upload.html:37 +msgid "Upload File" +msgstr "" + +#: common/views.py:84 order/templates/order/order_wizard/match_fields.html:52 +#: order/views.py:119 +#: part/templates/part/import_wizard/ajax_match_fields.html:45 +#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:110 +#: templates/patterns/wizard/match_fields.html:51 +msgid "Match Fields" +msgstr "" + +#: common/views.py:84 +msgid "Match Items" +msgstr "" + +#: common/views.py:397 +msgid "Fields matching failed" +msgstr "" + +#: common/views.py:460 +msgid "Parts imported" +msgstr "" + +#: common/views.py:490 order/templates/order/order_wizard/match_fields.html:27 +#: order/templates/order/order_wizard/match_parts.html:19 +#: order/templates/order/order_wizard/po_upload.html:49 +#: part/templates/part/import_wizard/match_fields.html:27 +#: part/templates/part/import_wizard/match_references.html:19 +#: part/templates/part/import_wizard/part_upload.html:56 +#: templates/patterns/wizard/match_fields.html:26 +#: templates/patterns/wizard/upload.html:35 +msgid "Previous Step" +msgstr "" + +#: company/api.py:141 +msgid "Part is Active" +msgstr "" + +#: company/api.py:145 +msgid "Manufacturer is Active" +msgstr "" + +#: company/api.py:278 +msgid "Supplier Part is Active" +msgstr "" + +#: company/api.py:282 +msgid "Internal Part is Active" +msgstr "" + +#: company/api.py:286 +msgid "Supplier is Active" +msgstr "" + +#: company/models.py:97 company/models.py:368 +#: company/templates/company/company_base.html:8 +#: company/templates/company/company_base.html:12 stock/api.py:811 +#: templates/InvenTree/search.html:178 templates/js/translated/company.js:496 +msgid "Company" +msgstr "" + +#: company/models.py:98 company/views.py:51 +#: templates/js/translated/search.js:192 +msgid "Companies" +msgstr "" + +#: company/models.py:114 +msgid "Company description" +msgstr "" + +#: company/models.py:115 +msgid "Description of the company" +msgstr "" + +#: company/models.py:120 company/templates/company/company_base.html:106 +#: templates/InvenTree/settings/plugin_settings.html:54 +#: templates/js/translated/company.js:532 +msgid "Website" +msgstr "" + +#: company/models.py:120 +msgid "Company website URL" +msgstr "" + +#: company/models.py:125 +msgid "Phone number" +msgstr "" + +#: company/models.py:127 +msgid "Contact phone number" +msgstr "" + +#: company/models.py:134 +msgid "Contact email address" +msgstr "" + +#: company/models.py:139 company/models.py:272 +#: company/templates/company/company_base.html:145 order/models.py:343 +#: order/templates/order/order_base.html:208 +#: order/templates/order/return_order_base.html:177 +#: order/templates/order/sales_order_base.html:221 +msgid "Contact" +msgstr "" + +#: company/models.py:141 +msgid "Point of contact" +msgstr "" + +#: company/models.py:147 +msgid "Link to external company information" +msgstr "" + +#: company/models.py:160 +msgid "Is this company active?" +msgstr "" + +#: company/models.py:165 +msgid "Is customer" +msgstr "" + +#: company/models.py:166 +msgid "Do you sell items to this company?" +msgstr "" + +#: company/models.py:171 +msgid "Is supplier" +msgstr "" + +#: company/models.py:172 +msgid "Do you purchase items from this company?" +msgstr "" + +#: company/models.py:177 +msgid "Is manufacturer" +msgstr "" + +#: company/models.py:178 +msgid "Does this company manufacture parts?" +msgstr "" + +#: company/models.py:186 +msgid "Default currency used for this company" +msgstr "" + +#: company/models.py:311 company/templates/company/company_base.html:124 +#: order/models.py:353 order/templates/order/order_base.html:215 +#: order/templates/order/return_order_base.html:184 +#: order/templates/order/sales_order_base.html:228 +msgid "Address" +msgstr "" + +#: company/models.py:312 company/templates/company/sidebar.html:35 +msgid "Addresses" +msgstr "" + +#: company/models.py:369 +msgid "Select company" +msgstr "" + +#: company/models.py:374 +msgid "Address title" +msgstr "" + +#: company/models.py:375 +msgid "Title describing the address entry" +msgstr "" + +#: company/models.py:381 +msgid "Primary address" +msgstr "" + +#: company/models.py:382 +msgid "Set as primary address" +msgstr "" + +#: company/models.py:387 templates/js/translated/company.js:914 +#: templates/js/translated/company.js:971 +msgid "Line 1" +msgstr "" + +#: company/models.py:388 +msgid "Address line 1" +msgstr "" + +#: company/models.py:394 templates/js/translated/company.js:915 +#: templates/js/translated/company.js:977 +msgid "Line 2" +msgstr "" + +#: company/models.py:395 +msgid "Address line 2" +msgstr "" + +#: company/models.py:401 company/models.py:402 +#: templates/js/translated/company.js:983 +msgid "Postal code" +msgstr "" + +#: company/models.py:408 +msgid "City/Region" +msgstr "" + +#: company/models.py:409 +msgid "Postal code city/region" +msgstr "" + +#: company/models.py:415 +msgid "State/Province" +msgstr "" + +#: company/models.py:416 +msgid "State or province" +msgstr "" + +#: company/models.py:422 templates/js/translated/company.js:1001 +msgid "Country" +msgstr "" + +#: company/models.py:423 +msgid "Address country" +msgstr "" + +#: company/models.py:429 +msgid "Courier shipping notes" +msgstr "" + +#: company/models.py:430 +msgid "Notes for shipping courier" +msgstr "" + +#: company/models.py:436 +msgid "Internal shipping notes" +msgstr "" + +#: company/models.py:437 +msgid "Shipping notes for internal use" +msgstr "" + +#: company/models.py:444 +msgid "Link to address information (external)" +msgstr "" + +#: company/models.py:467 company/models.py:584 company/models.py:808 +#: company/templates/company/manufacturer_part.html:7 +#: company/templates/company/manufacturer_part.html:24 +#: stock/templates/stock/item_base.html:213 +msgid "Manufacturer Part" +msgstr "" + +#: company/models.py:484 company/models.py:776 stock/models.py:791 +#: stock/serializers.py:452 stock/templates/stock/item_base.html:138 +#: templates/js/translated/bom.js:622 +msgid "Base Part" +msgstr "" + +#: company/models.py:486 company/models.py:778 +msgid "Select part" +msgstr "" + +#: company/models.py:495 company/templates/company/company_base.html:82 +#: company/templates/company/manufacturer_part.html:90 +#: company/templates/company/supplier_part.html:145 part/serializers.py:565 +#: stock/templates/stock/item_base.html:203 +#: templates/js/translated/company.js:507 +#: templates/js/translated/company.js:1118 +#: templates/js/translated/company.js:1296 +#: templates/js/translated/company.js:1611 +#: templates/js/translated/table_filters.js:812 +msgid "Manufacturer" +msgstr "" + +#: company/models.py:496 +msgid "Select manufacturer" +msgstr "" + +#: company/models.py:502 company/templates/company/manufacturer_part.html:101 +#: company/templates/company/supplier_part.html:153 order/serializers.py:557 +#: part/serializers.py:575 templates/js/translated/company.js:351 +#: templates/js/translated/company.js:1117 +#: templates/js/translated/company.js:1312 +#: templates/js/translated/company.js:1630 templates/js/translated/part.js:1807 +#: templates/js/translated/purchase_order.js:1921 +#: templates/js/translated/purchase_order.js:2123 +msgid "MPN" +msgstr "" + +#: company/models.py:510 +msgid "URL for external manufacturer part link" +msgstr "" + +#: company/models.py:519 +msgid "Manufacturer part description" +msgstr "" + +#: company/models.py:572 +msgid "Manufacturer Part Parameter" +msgstr "" + +#: company/models.py:591 +msgid "Parameter name" +msgstr "" + +#: company/models.py:597 report/templates/report/inventree_test_report.html:104 +#: stock/models.py:2539 templates/js/translated/company.js:1166 +#: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 +#: templates/js/translated/stock.js:1607 +msgid "Value" +msgstr "" + +#: company/models.py:598 +msgid "Parameter value" +msgstr "" + +#: company/models.py:605 company/templates/company/supplier_part.html:168 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 +#: part/templates/part/part_base.html:300 +#: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 +#: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 +msgid "Units" +msgstr "" + +#: company/models.py:606 +msgid "Parameter units" +msgstr "" + +#: company/models.py:659 company/templates/company/supplier_part.html:7 +#: company/templates/company/supplier_part.html:24 order/api.py:440 +#: order/serializers.py:492 stock/models.py:802 +#: stock/templates/stock/item_base.html:229 +#: templates/js/translated/build.js:1055 +#: templates/js/translated/company.js:1600 +#: templates/js/translated/purchase_order.js:752 +#: templates/js/translated/stock.js:2366 +msgid "Supplier Part" +msgstr "" + +#: company/models.py:716 +msgid "Pack units must be compatible with the base part units" +msgstr "" + +#: company/models.py:723 +msgid "Pack units must be greater than zero" +msgstr "" + +#: company/models.py:737 +msgid "Linked manufacturer part must reference the same base part" +msgstr "" + +#: company/models.py:786 company/templates/company/company_base.html:87 +#: company/templates/company/supplier_part.html:129 order/models.py:492 +#: order/templates/order/order_base.html:141 part/bom.py:279 part/bom.py:314 +#: part/serializers.py:549 plugin/builtin/suppliers/digikey.py:25 +#: plugin/builtin/suppliers/lcsc.py:26 plugin/builtin/suppliers/mouser.py:24 +#: plugin/builtin/suppliers/tme.py:26 stock/templates/stock/item_base.html:220 +#: templates/email/overdue_purchase_order.html:16 +#: templates/js/translated/company.js:350 +#: templates/js/translated/company.js:511 +#: templates/js/translated/company.js:1584 templates/js/translated/part.js:1775 +#: templates/js/translated/pricing.js:498 +#: templates/js/translated/purchase_order.js:1759 +#: templates/js/translated/table_filters.js:816 +msgid "Supplier" +msgstr "" + +#: company/models.py:787 +msgid "Select supplier" +msgstr "" + +#: company/models.py:793 part/serializers.py:560 +msgid "Supplier stock keeping unit" +msgstr "" + +#: company/models.py:799 +msgid "Is this supplier part active?" +msgstr "" + +#: company/models.py:809 +msgid "Select manufacturer part" +msgstr "" + +#: company/models.py:816 +msgid "URL for external supplier part link" +msgstr "" + +#: company/models.py:825 +msgid "Supplier part description" +msgstr "" + +#: company/models.py:832 company/templates/company/supplier_part.html:187 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 +#: part/templates/part/upload_bom.html:59 +#: report/templates/report/inventree_bill_of_materials_report.html:140 +#: report/templates/report/inventree_purchase_order_report.html:32 +#: report/templates/report/inventree_return_order_report.html:27 +#: report/templates/report/inventree_sales_order_report.html:32 +#: report/templates/report/inventree_stock_location_report.html:105 +#: stock/serializers.py:783 templates/js/translated/purchase_order.js:1185 +#: templates/js/translated/purchase_order.js:1344 +msgid "Note" +msgstr "" + +#: company/models.py:841 part/models.py:2128 +msgid "base cost" +msgstr "" + +#: company/models.py:842 part/models.py:2129 +msgid "Minimum charge (e.g. stocking fee)" +msgstr "" + +#: company/models.py:850 +msgid "Part packaging" +msgstr "" + +#: company/models.py:855 templates/js/translated/company.js:1651 +#: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 +#: templates/js/translated/purchase_order.js:311 +#: templates/js/translated/purchase_order.js:841 +#: templates/js/translated/purchase_order.js:1103 +#: templates/js/translated/purchase_order.js:2154 +#: templates/js/translated/purchase_order.js:2171 +msgid "Pack Quantity" +msgstr "" + +#: company/models.py:857 +msgid "Total quantity supplied in a single pack. Leave empty for single items." +msgstr "" + +#: company/models.py:876 part/models.py:2135 +msgid "multiple" +msgstr "" + +#: company/models.py:877 +msgid "Order multiple" +msgstr "" + +#: company/models.py:889 +msgid "Quantity available from supplier" +msgstr "" + +#: company/models.py:895 +msgid "Availability Updated" +msgstr "" + +#: company/models.py:896 +msgid "Date of last update of availability data" +msgstr "" + +#: company/models.py:1024 +msgid "Supplier Price Break" +msgstr "" + +#: company/serializers.py:178 +msgid "Default currency used for this supplier" +msgstr "" + +#: company/serializers.py:214 +msgid "Company Name" +msgstr "" + +#: company/serializers.py:397 part/admin.py:126 part/serializers.py:917 +#: part/templates/part/part_base.html:197 +#: templates/js/translated/company.js:1689 +#: templates/js/translated/table_filters.js:362 +msgid "In Stock" +msgstr "" + +#: company/templates/company/company_base.html:16 +#: part/templates/part/part_base.html:146 +#: templates/js/translated/company.js:1287 +#: templates/js/translated/company.js:1575 +#: templates/js/translated/model_renderers.js:313 +#: templates/js/translated/part.js:817 templates/js/translated/part.js:1225 +msgid "Inactive" +msgstr "" + +#: company/templates/company/company_base.html:27 +#: templates/js/translated/purchase_order.js:242 +msgid "Create Purchase Order" +msgstr "" + +#: company/templates/company/company_base.html:33 +msgid "Company actions" +msgstr "" + +#: company/templates/company/company_base.html:38 +msgid "Edit company information" +msgstr "" + +#: company/templates/company/company_base.html:39 +#: templates/js/translated/company.js:445 +msgid "Edit Company" +msgstr "" + +#: company/templates/company/company_base.html:43 +msgid "Delete company" +msgstr "" + +#: company/templates/company/company_base.html:44 +#: company/templates/company/company_base.html:168 +msgid "Delete Company" +msgstr "" + +#: company/templates/company/company_base.html:53 +#: company/templates/company/manufacturer_part.html:51 +#: company/templates/company/supplier_part.html:83 +#: part/templates/part/part_thumb.html:20 +#: report/templates/report/inventree_build_order_report.html:98 +#: report/templates/report/inventree_purchase_order_report.html:40 +#: report/templates/report/inventree_sales_order_report.html:40 +#: report/templates/report/inventree_test_report.html:84 +#: report/templates/report/inventree_test_report.html:162 +msgid "Part image" +msgstr "" + +#: company/templates/company/company_base.html:61 +#: part/templates/part/part_thumb.html:12 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:64 +#: part/templates/part/part_thumb.html:14 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:66 +#: part/templates/part/part_thumb.html:16 +msgid "Delete image" +msgstr "" + +#: company/templates/company/company_base.html:92 order/models.py:991 +#: order/models.py:2140 order/templates/order/return_order_base.html:134 +#: order/templates/order/sales_order_base.html:151 stock/models.py:844 +#: stock/models.py:845 stock/serializers.py:1336 +#: stock/templates/stock/item_base.html:401 +#: templates/email/overdue_sales_order.html:16 +#: templates/js/translated/company.js:503 +#: templates/js/translated/return_order.js:295 +#: templates/js/translated/sales_order.js:820 +#: templates/js/translated/stock.js:3044 +#: templates/js/translated/table_filters.js:820 +msgid "Customer" +msgstr "" + +#: company/templates/company/company_base.html:117 +msgid "Uses default currency" +msgstr "" + +#: company/templates/company/company_base.html:131 +msgid "Phone" +msgstr "" + +#: company/templates/company/company_base.html:211 +#: part/templates/part/part_base.html:543 +msgid "Remove Image" +msgstr "" + +#: company/templates/company/company_base.html:212 +msgid "Remove associated image from this company" +msgstr "" + +#: company/templates/company/company_base.html:214 +#: part/templates/part/part_base.html:546 +#: templates/InvenTree/settings/user.html:88 +#: templates/InvenTree/settings/user_sso.html:43 +msgid "Remove" +msgstr "" + +#: company/templates/company/company_base.html:243 +#: part/templates/part/part_base.html:575 +msgid "Upload Image" +msgstr "" + +#: company/templates/company/company_base.html:258 +#: part/templates/part/part_base.html:629 +msgid "Download Image" +msgstr "" + +#: company/templates/company/detail.html:15 +#: company/templates/company/manufacturer_part_sidebar.html:7 +#: templates/InvenTree/search.html:120 templates/js/translated/search.js:147 +msgid "Supplier Parts" +msgstr "" + +#: company/templates/company/detail.html:19 +msgid "Create new supplier part" +msgstr "" + +#: company/templates/company/detail.html:20 +#: company/templates/company/manufacturer_part.html:123 +#: part/templates/part/detail.html:372 +msgid "New Supplier Part" +msgstr "" + +#: company/templates/company/detail.html:41 templates/InvenTree/search.html:105 +#: templates/js/translated/search.js:151 +msgid "Manufacturer Parts" +msgstr "" + +#: company/templates/company/detail.html:45 +msgid "Create new manufacturer part" +msgstr "" + +#: company/templates/company/detail.html:46 part/templates/part/detail.html:392 +msgid "New Manufacturer Part" +msgstr "" + +#: company/templates/company/detail.html:65 +msgid "Supplier Stock" +msgstr "" + +#: company/templates/company/detail.html:75 +#: company/templates/company/sidebar.html:12 +#: company/templates/company/supplier_part_sidebar.html:7 +#: order/templates/order/order_base.html:13 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:12 +#: part/templates/part/detail.html:122 part/templates/part/part_sidebar.html:35 +#: 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:208 +msgid "Purchase Orders" +msgstr "" + +#: company/templates/company/detail.html:79 +#: order/templates/order/purchase_orders.html:17 +msgid "Create new purchase order" +msgstr "" + +#: company/templates/company/detail.html:80 +#: order/templates/order/purchase_orders.html:18 +msgid "New Purchase Order" +msgstr "" + +#: company/templates/company/detail.html:101 +#: company/templates/company/sidebar.html:21 +#: order/templates/order/sales_order_base.html:13 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:15 +#: part/templates/part/detail.html:143 part/templates/part/part_sidebar.html:39 +#: 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:209 +msgid "Sales Orders" +msgstr "" + +#: company/templates/company/detail.html:105 +#: order/templates/order/sales_orders.html:20 +msgid "Create new sales order" +msgstr "" + +#: company/templates/company/detail.html:106 +#: order/templates/order/sales_orders.html:21 +msgid "New Sales Order" +msgstr "" + +#: company/templates/company/detail.html:126 +msgid "Assigned Stock" +msgstr "" + +#: company/templates/company/detail.html:142 +#: company/templates/company/sidebar.html:29 +#: order/templates/order/return_order_base.html:13 +#: order/templates/order/return_orders.html:8 +#: 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:210 +msgid "Return Orders" +msgstr "" + +#: company/templates/company/detail.html:146 +#: order/templates/order/return_orders.html:20 +msgid "Create new return order" +msgstr "" + +#: company/templates/company/detail.html:147 +#: order/templates/order/return_orders.html:21 +msgid "New Return Order" +msgstr "" + +#: company/templates/company/detail.html:168 +msgid "Company Notes" +msgstr "" + +#: company/templates/company/detail.html:183 +msgid "Company Contacts" +msgstr "" + +#: company/templates/company/detail.html:187 +#: company/templates/company/detail.html:188 +msgid "Add Contact" +msgstr "" + +#: company/templates/company/detail.html:206 +msgid "Company addresses" +msgstr "" + +#: company/templates/company/detail.html:210 +#: company/templates/company/detail.html:211 +msgid "Add Address" +msgstr "" + +#: company/templates/company/manufacturer_part.html:15 company/views.py:37 +#: templates/InvenTree/search.html:180 templates/navbar.html:49 +msgid "Manufacturers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:35 +#: company/templates/company/supplier_part.html:227 +#: part/templates/part/detail.html:125 part/templates/part/part_base.html:83 +msgid "Order part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:39 +#: templates/js/translated/company.js:1343 +msgid "Edit manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:43 +#: templates/js/translated/company.js:1344 +msgid "Delete manufacturer part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:65 +#: company/templates/company/supplier_part.html:97 order/api.py:446 +#: order/serializers.py:565 +msgid "Internal Part" +msgstr "" + +#: company/templates/company/manufacturer_part.html:95 +msgid "No manufacturer information available" +msgstr "" + +#: company/templates/company/manufacturer_part.html:119 +#: company/templates/company/supplier_part.html:15 company/views.py:31 +#: part/admin.py:122 part/serializers.py:923 +#: part/templates/part/part_sidebar.html:33 templates/InvenTree/search.html:190 +#: templates/navbar.html:48 +msgid "Suppliers" +msgstr "" + +#: company/templates/company/manufacturer_part.html:156 +#: company/templates/company/manufacturer_part_sidebar.html:5 +#: part/templates/part/category_sidebar.html:20 +#: part/templates/part/detail.html:211 part/templates/part/part_sidebar.html:8 +msgid "Parameters" +msgstr "" + +#: company/templates/company/manufacturer_part.html:160 +#: part/templates/part/detail.html:216 +#: templates/InvenTree/settings/category.html:12 +#: templates/InvenTree/settings/part_parameters.html:24 +msgid "New Parameter" +msgstr "" + +#: company/templates/company/manufacturer_part.html:177 +msgid "Manufacturer Part Notes" +msgstr "" + +#: company/templates/company/manufacturer_part.html:225 +#: templates/js/translated/part.js:1429 +msgid "Add Parameter" +msgstr "" + +#: company/templates/company/sidebar.html:6 +msgid "Manufactured Parts" +msgstr "" + +#: company/templates/company/sidebar.html:10 +msgid "Supplied Parts" +msgstr "" + +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:25 +msgid "Assigned Stock Items" +msgstr "" + +#: company/templates/company/sidebar.html:33 +msgid "Contacts" +msgstr "" + +#: company/templates/company/supplier_part.html:50 +#: templates/js/translated/company.js:1526 +msgid "Supplier part actions" +msgstr "" + +#: company/templates/company/supplier_part.html:55 +#: company/templates/company/supplier_part.html:56 +#: company/templates/company/supplier_part.html:228 +#: part/templates/part/detail.html:126 +msgid "Order Part" +msgstr "" + +#: company/templates/company/supplier_part.html:60 +#: company/templates/company/supplier_part.html:61 +msgid "Update Availability" +msgstr "" + +#: company/templates/company/supplier_part.html:63 +#: company/templates/company/supplier_part.html:64 +#: templates/js/translated/company.js:294 +msgid "Edit Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:68 +#: company/templates/company/supplier_part.html:69 +#: templates/js/translated/company.js:269 +msgid "Duplicate Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:73 +msgid "Delete Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:74 +msgid "Delete Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:133 +msgid "No supplier information available" +msgstr "" + +#: company/templates/company/supplier_part.html:139 order/serializers.py:554 +#: part/bom.py:286 part/bom.py:315 part/serializers.py:559 +#: templates/js/translated/company.js:349 templates/js/translated/part.js:1793 +#: templates/js/translated/pricing.js:510 +#: templates/js/translated/purchase_order.js:1920 +#: templates/js/translated/purchase_order.js:2098 +msgid "SKU" +msgstr "" + +#: company/templates/company/supplier_part.html:206 +msgid "Supplier Part Stock" +msgstr "" + +#: company/templates/company/supplier_part.html:209 +#: part/templates/part/detail.html:24 stock/templates/stock/location.html:204 +msgid "Create new stock item" +msgstr "" + +#: company/templates/company/supplier_part.html:210 +#: part/templates/part/detail.html:25 stock/templates/stock/location.html:205 +#: templates/js/translated/stock.js:543 +msgid "New Stock Item" +msgstr "" + +#: company/templates/company/supplier_part.html:223 +msgid "Supplier Part Orders" +msgstr "" + +#: company/templates/company/supplier_part.html:246 +msgid "Pricing Information" +msgstr "" + +#: company/templates/company/supplier_part.html:251 +#: templates/js/translated/company.js:398 +#: templates/js/translated/pricing.js:684 +msgid "Add Price Break" +msgstr "" + +#: company/templates/company/supplier_part.html:270 +msgid "Supplier Part Notes" +msgstr "" + +#: company/templates/company/supplier_part.html:305 +msgid "Supplier Part QR Code" +msgstr "" + +#: company/templates/company/supplier_part.html:316 +msgid "Link Barcode to Supplier Part" +msgstr "" + +#: company/templates/company/supplier_part.html:388 +msgid "Update Part Availability" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:5 +#: part/serializers.py:921 part/stocktake.py:223 +#: part/templates/part/category.html:180 +#: part/templates/part/category_sidebar.html:17 stock/admin.py:68 +#: stock/serializers.py:1021 stock/serializers.py:1199 +#: stock/templates/stock/location.html:167 +#: stock/templates/stock/location.html:188 +#: stock/templates/stock/location.html:200 +#: stock/templates/stock/location_sidebar.html:7 +#: templates/InvenTree/search.html:155 templates/js/translated/part.js:1067 +#: templates/js/translated/search.js:172 templates/js/translated/stock.js:2851 +#: users/models.py:206 +msgid "Stock Items" +msgstr "" + +#: company/templates/company/supplier_part_sidebar.html:9 +msgid "Supplier Part Pricing" +msgstr "" + +#: company/views.py:32 +msgid "New Supplier" +msgstr "" + +#: company/views.py:38 +msgid "New Manufacturer" +msgstr "" + +#: company/views.py:43 templates/InvenTree/search.html:210 +#: templates/navbar.html:60 +msgid "Customers" +msgstr "" + +#: company/views.py:44 +msgid "New Customer" +msgstr "" + +#: company/views.py:52 +msgid "New Company" +msgstr "" + +#: generic/states/fields.py:118 +msgid "Custom status key" +msgstr "" + +#: generic/states/fields.py:119 +msgid "Additional status information for this item" +msgstr "" + +#: generic/states/tests.py:22 order/status_codes.py:13 +msgid "Placed" +msgstr "" + +#: importer/mixins.py:261 +msgid "Invalid export format" +msgstr "" + +#: importer/models.py:60 +msgid "Timestamp" +msgstr "" + +#: importer/models.py:65 +msgid "Data file to import" +msgstr "" + +#: importer/models.py:74 templates/js/translated/tables.js:558 +msgid "Columns" +msgstr "" + +#: importer/models.py:85 +msgid "Import status" +msgstr "" + +#: importer/models.py:95 +msgid "Field Defaults" +msgstr "" + +#: importer/models.py:102 +msgid "Field Overrides" +msgstr "" + +#: importer/models.py:109 +msgid "Field Filters" +msgstr "" + +#: importer/models.py:231 +msgid "Some required fields have not been mapped" +msgstr "" + +#: importer/models.py:388 +msgid "Column is already mapped to a database field" +msgstr "" + +#: importer/models.py:393 +msgid "Field is already mapped to a data column" +msgstr "" + +#: importer/models.py:402 +msgid "Column mapping must be linked to a valid import session" +msgstr "" + +#: importer/models.py:407 +msgid "Column does not exist in the data file" +msgstr "" + +#: importer/models.py:414 +msgid "Field does not exist in the target model" +msgstr "" + +#: importer/models.py:418 +msgid "Selected field is read-only" +msgstr "" + +#: importer/models.py:423 importer/models.py:494 +msgid "Import Session" +msgstr "" + +#: importer/models.py:427 +msgid "Field" +msgstr "" + +#: importer/models.py:429 +msgid "Column" +msgstr "" + +#: importer/models.py:498 +msgid "Row Index" +msgstr "" + +#: importer/models.py:501 +msgid "Original row data" +msgstr "" + +#: importer/models.py:504 part/models.py:3952 +msgid "Data" +msgstr "" + +#: importer/models.py:506 machine/models.py:110 +msgid "Errors" +msgstr "" + +#: importer/models.py:508 part/api.py:870 +msgid "Valid" +msgstr "" + +#: importer/operations.py:28 importer/operations.py:49 +msgid "Unsupported data file format" +msgstr "" + +#: importer/operations.py:40 +msgid "Failed to open data file" +msgstr "" + +#: importer/operations.py:51 +msgid "Invalid data file dimensions" +msgstr "" + +#: importer/serializers.py:91 +msgid "Invalid field defaults" +msgstr "" + +#: importer/serializers.py:104 +msgid "Invalid field overrides" +msgstr "" + +#: importer/serializers.py:117 +msgid "Invalid field filters" +msgstr "" + +#: importer/serializers.py:178 +msgid "Rows" +msgstr "" + +#: importer/serializers.py:179 +msgid "List of row IDs to accept" +msgstr "" + +#: importer/serializers.py:192 +msgid "No rows provided" +msgstr "" + +#: importer/serializers.py:196 +msgid "Row does not belong to this session" +msgstr "" + +#: importer/serializers.py:199 +msgid "Row contains invalid data" +msgstr "" + +#: importer/serializers.py:202 +msgid "Row has already been completed" +msgstr "" + +#: importer/status_codes.py:13 +msgid "Initializing" +msgstr "" + +#: importer/status_codes.py:18 +msgid "Mapping Columns" +msgstr "" + +#: importer/status_codes.py:21 +msgid "Importing Data" +msgstr "" + +#: importer/status_codes.py:24 +msgid "Processing Data" +msgstr "" + +#: importer/validators.py:21 +msgid "Data file exceeds maximum size limit" +msgstr "" + +#: importer/validators.py:26 +msgid "Data file contains no headers" +msgstr "" + +#: importer/validators.py:29 +msgid "Data file contains too many columns" +msgstr "" + +#: importer/validators.py:32 +msgid "Data file contains too many rows" +msgstr "" + +#: importer/validators.py:53 +msgid "Value must be a valid dictionary object" +msgstr "" + +#: machine/machine_types/label_printer.py:216 +msgid "Copies" +msgstr "" + +#: machine/machine_types/label_printer.py:217 +msgid "Number of copies to print for each label" +msgstr "" + +#: machine/machine_types/label_printer.py:232 +msgid "Connected" +msgstr "" + +#: machine/machine_types/label_printer.py:233 order/api.py:1397 +#: templates/js/translated/sales_order.js:1078 +msgid "Unknown" +msgstr "" + +#: machine/machine_types/label_printer.py:234 +msgid "Printing" +msgstr "" + +#: machine/machine_types/label_printer.py:235 +msgid "No media" +msgstr "" + +#: machine/machine_types/label_printer.py:236 +msgid "Paper jam" +msgstr "" + +#: machine/machine_types/label_printer.py:237 +msgid "Disconnected" +msgstr "" + +#: machine/machine_types/label_printer.py:244 +msgid "Label Printer" +msgstr "" + +#: machine/machine_types/label_printer.py:245 +msgid "Directly print labels for various items." +msgstr "" + +#: machine/machine_types/label_printer.py:251 +msgid "Printer Location" +msgstr "" + +#: machine/machine_types/label_printer.py:252 +msgid "Scope the printer to a specific location" +msgstr "" + +#: machine/models.py:25 +msgid "Name of machine" +msgstr "" + +#: machine/models.py:29 +msgid "Machine Type" +msgstr "" + +#: machine/models.py:29 +msgid "Type of machine" +msgstr "" + +#: machine/models.py:34 machine/models.py:146 +msgid "Driver" +msgstr "" + +#: machine/models.py:35 +msgid "Driver used for the machine" +msgstr "" + +#: machine/models.py:39 +msgid "Machines can be disabled" +msgstr "" + +#: machine/models.py:95 +msgid "Driver available" +msgstr "" + +#: machine/models.py:100 +msgid "No errors" +msgstr "" + +#: machine/models.py:105 +msgid "Initialized" +msgstr "" + +#: machine/models.py:117 +msgid "Machine status" +msgstr "" + +#: machine/models.py:145 +msgid "Machine" +msgstr "" + +#: machine/models.py:151 +msgid "Machine Config" +msgstr "" + +#: machine/models.py:156 +msgid "Config type" +msgstr "" + +#: order/admin.py:30 order/models.py:90 +#: report/templates/report/inventree_purchase_order_report.html:31 +#: report/templates/report/inventree_sales_order_report.html:31 +#: templates/js/translated/order.js:352 +#: templates/js/translated/purchase_order.js:2195 +#: templates/js/translated/sales_order.js:1883 +msgid "Total Price" +msgstr "" + +#: order/api.py:80 order/api.py:151 order/serializers.py:94 +#: order/templates/order/order_base.html:123 +#: order/templates/order/return_order_base.html:116 +#: order/templates/order/sales_order_base.html:125 +msgid "Order Status" +msgstr "" + +#: order/api.py:88 order/templates/order/order_base.html:111 +#: order/templates/order/return_order_base.html:104 +#: order/templates/order/sales_order_base.html:113 +msgid "Order Reference" +msgstr "" + +#: order/api.py:116 templates/js/translated/table_filters.js:93 +#: templates/js/translated/table_filters.js:625 +#: templates/js/translated/table_filters.js:651 +#: templates/js/translated/table_filters.js:666 +msgid "Outstanding" +msgstr "" + +#: order/api.py:132 +msgid "Has Project Code" +msgstr "" + +#: order/api.py:155 templates/js/translated/table_filters.js:201 +#: templates/js/translated/table_filters.js:791 +msgid "Has Pricing" +msgstr "" + +#: order/api.py:230 +msgid "No matching purchase order found" +msgstr "" + +#: order/api.py:423 order/api.py:757 order/models.py:1477 order/models.py:1591 +#: order/models.py:1642 order/models.py:1757 order/models.py:1916 +#: order/models.py:2376 order/models.py:2432 +#: templates/js/translated/sales_order.js:1524 +msgid "Order" +msgstr "" + +#: order/api.py:427 order/api.py:778 +msgid "Order Complete" +msgstr "" + +#: order/api.py:450 +msgid "Order Pending" +msgstr "" + +#: order/api.py:1391 order/models.py:380 order/models.py:1478 +#: order/models.py:1592 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:18 +#: report/templates/report/inventree_purchase_order_report.html:14 +#: stock/serializers.py:121 stock/templates/stock/item_base.html:172 +#: templates/email/overdue_purchase_order.html:15 +#: templates/js/translated/part.js:1752 templates/js/translated/pricing.js:804 +#: templates/js/translated/purchase_order.js:168 +#: templates/js/translated/purchase_order.js:753 +#: templates/js/translated/purchase_order.js:1743 +#: templates/js/translated/stock.js:2346 templates/js/translated/stock.js:2992 +msgid "Purchase Order" +msgstr "" + +#: order/api.py:1395 order/models.py:2084 order/models.py:2377 +#: order/models.py:2433 order/templates/order/return_order_base.html:9 +#: order/templates/order/return_order_base.html:28 +#: report/templates/report/inventree_return_order_report.html:13 +#: templates/js/translated/return_order.js:280 +#: templates/js/translated/stock.js:3026 +msgid "Return Order" +msgstr "" + +#: order/models.py:91 +msgid "Total price for this order" +msgstr "" + +#: order/models.py:96 order/serializers.py:72 +msgid "Order Currency" +msgstr "" + +#: order/models.py:99 order/serializers.py:73 +msgid "Currency for this order (leave blank to use company default)" +msgstr "" + +#: order/models.py:247 +msgid "Contact does not match selected company" +msgstr "" + +#: order/models.py:290 +msgid "Order description (optional)" +msgstr "" + +#: order/models.py:299 +msgid "Select project code for this order" +msgstr "" + +#: order/models.py:303 order/models.py:1378 order/models.py:1810 +msgid "Link to external page" +msgstr "" + +#: order/models.py:311 +msgid "Expected date for order delivery. Order will be overdue after this date." +msgstr "" + +#: order/models.py:325 +msgid "Created By" +msgstr "" + +#: order/models.py:333 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:344 +msgid "Point of contact for this order" +msgstr "" + +#: order/models.py:354 +msgid "Company address for this order" +msgstr "" + +#: order/models.py:469 order/models.py:980 +msgid "Order reference" +msgstr "" + +#: order/models.py:478 +msgid "Purchase order status" +msgstr "" + +#: order/models.py:493 +msgid "Company from which the items are being ordered" +msgstr "" + +#: order/models.py:504 order/templates/order/order_base.html:153 +#: templates/js/translated/purchase_order.js:1772 +msgid "Supplier Reference" +msgstr "" + +#: order/models.py:505 +msgid "Supplier order reference code" +msgstr "" + +#: order/models.py:514 +msgid "received by" +msgstr "" + +#: order/models.py:520 order/models.py:2166 +msgid "Issue Date" +msgstr "" + +#: order/models.py:521 order/models.py:2167 +msgid "Date order was issued" +msgstr "" + +#: order/models.py:528 order/models.py:2174 +msgid "Date order was completed" +msgstr "" + +#: order/models.py:572 +msgid "Part supplier must match PO supplier" +msgstr "" + +#: order/models.py:807 +msgid "Quantity must be a positive number" +msgstr "" + +#: order/models.py:992 +msgid "Company to which the items are being sold" +msgstr "" + +#: order/models.py:1004 +msgid "Sales order status" +msgstr "" + +#: order/models.py:1015 order/models.py:2159 +msgid "Customer Reference " +msgstr "" + +#: order/models.py:1016 order/models.py:2160 +msgid "Customer order reference code" +msgstr "" + +#: order/models.py:1020 order/models.py:1764 +#: templates/js/translated/sales_order.js:879 +#: templates/js/translated/sales_order.js:1060 +msgid "Shipment Date" +msgstr "" + +#: order/models.py:1029 +msgid "shipped by" +msgstr "" + +#: order/models.py:1070 +msgid "Order is already complete" +msgstr "" + +#: order/models.py:1073 +msgid "Order is already cancelled" +msgstr "" + +#: order/models.py:1077 +msgid "Only an open order can be marked as complete" +msgstr "" + +#: order/models.py:1081 +msgid "Order cannot be completed as there are incomplete shipments" +msgstr "" + +#: order/models.py:1086 +msgid "Order cannot be completed as there are incomplete line items" +msgstr "" + +#: order/models.py:1350 +msgid "Item quantity" +msgstr "" + +#: order/models.py:1367 +msgid "Line item reference" +msgstr "" + +#: order/models.py:1374 +msgid "Line item notes" +msgstr "" + +#: order/models.py:1386 +msgid "Target date for this line item (leave blank to use the target date from the order)" +msgstr "" + +#: order/models.py:1407 +msgid "Line item description (optional)" +msgstr "" + +#: order/models.py:1413 +msgid "Context" +msgstr "" + +#: order/models.py:1414 +msgid "Additional context for this line" +msgstr "" + +#: order/models.py:1424 +msgid "Unit price" +msgstr "" + +#: order/models.py:1438 +msgid "Purchase Order Line Item" +msgstr "" + +#: order/models.py:1462 +msgid "Supplier part must match supplier" +msgstr "" + +#: order/models.py:1469 +msgid "deleted" +msgstr "" + +#: order/models.py:1497 +msgid "Supplier part" +msgstr "" + +#: order/models.py:1504 order/templates/order/order_base.html:201 +#: templates/js/translated/part.js:1876 templates/js/translated/part.js:1908 +#: templates/js/translated/purchase_order.js:1369 +#: templates/js/translated/purchase_order.js:2239 +#: templates/js/translated/return_order.js:762 +#: templates/js/translated/table_filters.js:119 +#: templates/js/translated/table_filters.js:605 +msgid "Received" +msgstr "" + +#: order/models.py:1505 +msgid "Number of items received" +msgstr "" + +#: order/models.py:1513 stock/models.py:963 stock/serializers.py:617 +#: stock/templates/stock/item_base.html:179 +#: templates/js/translated/stock.js:2397 +msgid "Purchase Price" +msgstr "" + +#: order/models.py:1514 +msgid "Unit purchase price" +msgstr "" + +#: order/models.py:1529 +msgid "Where does the Purchaser want this item to be stored?" +msgstr "" + +#: order/models.py:1580 +msgid "Purchase Order Extra Line" +msgstr "" + +#: order/models.py:1609 +msgid "Sales Order Line Item" +msgstr "" + +#: order/models.py:1630 +msgid "Virtual part cannot be assigned to a sales order" +msgstr "" + +#: order/models.py:1635 +msgid "Only salable parts can be assigned to a sales order" +msgstr "" + +#: order/models.py:1661 part/templates/part/part_pricing.html:107 +#: part/templates/part/prices.html:139 templates/js/translated/pricing.js:957 +msgid "Sale Price" +msgstr "" + +#: order/models.py:1662 +msgid "Unit sale price" +msgstr "" + +#: order/models.py:1671 order/status_codes.py:48 +#: templates/js/translated/sales_order.js:1559 +#: templates/js/translated/sales_order.js:1680 +#: templates/js/translated/sales_order.js:1993 +msgid "Shipped" +msgstr "" + +#: order/models.py:1672 +msgid "Shipped quantity" +msgstr "" + +#: order/models.py:1744 +msgid "Sales Order Shipment" +msgstr "" + +#: order/models.py:1765 +msgid "Date of shipment" +msgstr "" + +#: order/models.py:1771 templates/js/translated/sales_order.js:1072 +msgid "Delivery Date" +msgstr "" + +#: order/models.py:1772 +msgid "Date of delivery of shipment" +msgstr "" + +#: order/models.py:1780 +msgid "Checked By" +msgstr "" + +#: order/models.py:1781 +msgid "User who checked this shipment" +msgstr "" + +#: order/models.py:1788 order/models.py:2011 order/serializers.py:1479 +#: order/serializers.py:1597 templates/js/translated/model_renderers.js:455 +msgid "Shipment" +msgstr "" + +#: order/models.py:1789 +msgid "Shipment number" +msgstr "" + +#: order/models.py:1797 +msgid "Tracking Number" +msgstr "" + +#: order/models.py:1798 +msgid "Shipment tracking information" +msgstr "" + +#: order/models.py:1805 +msgid "Invoice Number" +msgstr "" + +#: order/models.py:1806 +msgid "Reference number for associated invoice" +msgstr "" + +#: order/models.py:1826 +msgid "Shipment has already been sent" +msgstr "" + +#: order/models.py:1829 +msgid "Shipment has no allocated stock items" +msgstr "" + +#: order/models.py:1905 +msgid "Sales Order Extra Line" +msgstr "" + +#: order/models.py:1934 +msgid "Sales Order Allocation" +msgstr "" + +#: order/models.py:1957 order/models.py:1959 +msgid "Stock item has not been assigned" +msgstr "" + +#: order/models.py:1966 +msgid "Cannot allocate stock item to a line with a different part" +msgstr "" + +#: order/models.py:1969 +msgid "Cannot allocate stock to a line without a part" +msgstr "" + +#: order/models.py:1972 +msgid "Allocation quantity cannot exceed stock quantity" +msgstr "" + +#: order/models.py:1991 order/serializers.py:1349 +msgid "Quantity must be 1 for serialized stock item" +msgstr "" + +#: order/models.py:1994 +msgid "Sales order does not match shipment" +msgstr "" + +#: order/models.py:1995 plugin/base/barcodes/api.py:523 +msgid "Shipment does not match sales order" +msgstr "" + +#: order/models.py:2003 +msgid "Line" +msgstr "" + +#: order/models.py:2012 +msgid "Sales order shipment reference" +msgstr "" + +#: order/models.py:2025 order/models.py:2384 +#: templates/js/translated/return_order.js:720 +msgid "Item" +msgstr "" + +#: order/models.py:2026 +msgid "Select stock item to allocate" +msgstr "" + +#: order/models.py:2035 +msgid "Enter stock allocation quantity" +msgstr "" + +#: order/models.py:2129 +msgid "Return Order reference" +msgstr "" + +#: order/models.py:2141 +msgid "Company from which items are being returned" +msgstr "" + +#: order/models.py:2153 +msgid "Return order status" +msgstr "" + +#: order/models.py:2355 +msgid "Return Order Line Item" +msgstr "" + +#: order/models.py:2369 +msgid "Only serialized items can be assigned to a Return Order" +msgstr "" + +#: order/models.py:2385 +msgid "Select item to return from customer" +msgstr "" + +#: order/models.py:2391 +msgid "Received Date" +msgstr "" + +#: order/models.py:2392 +msgid "The date this this return item was received" +msgstr "" + +#: order/models.py:2403 templates/js/translated/return_order.js:731 +#: templates/js/translated/table_filters.js:122 +msgid "Outcome" +msgstr "" + +#: order/models.py:2404 +msgid "Outcome for this line item" +msgstr "" + +#: order/models.py:2411 +msgid "Cost associated with return or repair for this line item" +msgstr "" + +#: order/models.py:2421 +msgid "Return Order Extra Line" +msgstr "" + +#: order/serializers.py:87 +msgid "Completed Lines" +msgstr "" + +#: order/serializers.py:290 stock/admin.py:196 +msgid "Supplier Name" +msgstr "" + +#: order/serializers.py:332 +msgid "Order cannot be cancelled" +msgstr "" + +#: order/serializers.py:347 order/serializers.py:1370 +msgid "Allow order to be closed with incomplete line items" +msgstr "" + +#: order/serializers.py:357 order/serializers.py:1380 +msgid "Order has incomplete line items" +msgstr "" + +#: order/serializers.py:507 +msgid "Order is not open" +msgstr "" + +#: order/serializers.py:528 +msgid "Auto Pricing" +msgstr "" + +#: order/serializers.py:530 +msgid "Automatically calculate purchase price based on supplier part data" +msgstr "" + +#: order/serializers.py:540 +msgid "Purchase price currency" +msgstr "" + +#: order/serializers.py:546 +msgid "Merge Items" +msgstr "" + +#: order/serializers.py:548 +msgid "Merge items with the same part, destination and target date into one line item" +msgstr "" + +#: order/serializers.py:561 part/models.py:1045 part/serializers.py:354 +msgid "Internal Part Number" +msgstr "" + +#: order/serializers.py:569 +msgid "Internal Part Name" +msgstr "" + +#: order/serializers.py:585 +msgid "Supplier part must be specified" +msgstr "" + +#: order/serializers.py:588 +msgid "Purchase order must be specified" +msgstr "" + +#: order/serializers.py:596 +msgid "Supplier must match purchase order" +msgstr "" + +#: order/serializers.py:597 +msgid "Purchase order must match supplier" +msgstr "" + +#: order/serializers.py:640 order/serializers.py:1450 +msgid "Line Item" +msgstr "" + +#: order/serializers.py:646 +msgid "Line item does not match purchase order" +msgstr "" + +#: order/serializers.py:656 order/serializers.py:779 order/serializers.py:1798 +msgid "Select destination location for received items" +msgstr "" + +#: order/serializers.py:672 templates/js/translated/purchase_order.js:1130 +#: templates/js/translated/stock.js:1200 +msgid "Enter batch code for incoming stock items" +msgstr "" + +#: order/serializers.py:680 templates/js/translated/purchase_order.js:1155 +msgid "Enter serial numbers for incoming stock items" +msgstr "" + +#: order/serializers.py:692 +msgid "Override packaging information for incoming stock items" +msgstr "" + +#: order/serializers.py:700 +msgid "Additional note for incoming stock items" +msgstr "" + +#: order/serializers.py:707 templates/js/translated/barcode.js:52 +msgid "Barcode" +msgstr "" + +#: order/serializers.py:708 +msgid "Scanned barcode" +msgstr "" + +#: order/serializers.py:724 +msgid "Barcode is already in use" +msgstr "" + +#: order/serializers.py:747 +msgid "An integer quantity must be provided for trackable parts" +msgstr "" + +#: order/serializers.py:795 order/serializers.py:1814 +msgid "Line items must be provided" +msgstr "" + +#: order/serializers.py:811 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:822 +msgid "Supplied barcode values must be unique" +msgstr "" + +#: order/serializers.py:1191 +msgid "Sale price currency" +msgstr "" + +#: order/serializers.py:1252 +msgid "No shipment details provided" +msgstr "" + +#: order/serializers.py:1313 order/serializers.py:1459 +msgid "Line item is not associated with this order" +msgstr "" + +#: order/serializers.py:1332 +msgid "Quantity must be positive" +msgstr "" + +#: order/serializers.py:1469 +msgid "Enter serial numbers to allocate" +msgstr "" + +#: order/serializers.py:1491 order/serializers.py:1605 +msgid "Shipment has already been shipped" +msgstr "" + +#: order/serializers.py:1494 order/serializers.py:1608 +msgid "Shipment is not associated with this order" +msgstr "" + +#: order/serializers.py:1549 +msgid "No match found for the following serial numbers" +msgstr "" + +#: order/serializers.py:1556 +msgid "The following serial numbers are unavailable" +msgstr "" + +#: order/serializers.py:1768 +msgid "Return order line item" +msgstr "" + +#: order/serializers.py:1774 +msgid "Line item does not match return order" +msgstr "" + +#: order/serializers.py:1777 +msgid "Line item has already been received" +msgstr "" + +#: order/serializers.py:1806 +msgid "Items can only be received against orders which are in progress" +msgstr "" + +#: order/serializers.py:1889 +msgid "Line price currency" +msgstr "" + +#: order/status_codes.py:17 order/status_codes.py:52 stock/status_codes.py:16 +msgid "Lost" +msgstr "" + +#: order/status_codes.py:18 order/status_codes.py:53 stock/status_codes.py:24 +msgid "Returned" +msgstr "" + +#: order/status_codes.py:45 order/status_codes.py:77 +msgid "In Progress" +msgstr "" + +#: order/status_codes.py:101 +msgid "Return" +msgstr "" + +#: order/status_codes.py:104 +msgid "Repair" +msgstr "" + +#: order/status_codes.py:107 +msgid "Replace" +msgstr "" + +#: order/status_codes.py:110 +msgid "Refund" +msgstr "" + +#: order/status_codes.py:113 +msgid "Reject" +msgstr "" + +#: order/tasks.py:25 +msgid "Overdue Purchase Order" +msgstr "" + +#: order/tasks.py:30 +#, python-brace-format +msgid "Purchase order {po} is now overdue" +msgstr "" + +#: order/tasks.py:75 +msgid "Overdue Sales Order" +msgstr "" + +#: order/tasks.py:80 +#, python-brace-format +msgid "Sales order {so} is now overdue" +msgstr "" + +#: order/templates/order/order_base.html:51 +msgid "Print purchase order report" +msgstr "" + +#: order/templates/order/order_base.html:53 +#: order/templates/order/return_order_base.html:62 +#: order/templates/order/sales_order_base.html:62 +msgid "Export order to file" +msgstr "" + +#: order/templates/order/order_base.html:59 +#: order/templates/order/return_order_base.html:72 +#: order/templates/order/sales_order_base.html:71 +msgid "Order actions" +msgstr "" + +#: order/templates/order/order_base.html:64 +#: order/templates/order/return_order_base.html:76 +#: order/templates/order/sales_order_base.html:75 +msgid "Edit order" +msgstr "" + +#: order/templates/order/order_base.html:68 +msgid "Duplicate order" +msgstr "" + +#: order/templates/order/order_base.html:73 +#: order/templates/order/return_order_base.html:78 +#: order/templates/order/sales_order_base.html:77 +msgid "Hold order" +msgstr "" + +#: order/templates/order/order_base.html:78 +#: order/templates/order/return_order_base.html:81 +#: order/templates/order/sales_order_base.html:80 +msgid "Cancel order" +msgstr "" + +#: order/templates/order/order_base.html:84 +#: order/templates/order/order_base.html:85 +#: order/templates/order/return_order_base.html:85 +#: order/templates/order/return_order_base.html:86 +#: order/templates/order/sales_order_base.html:86 +#: order/templates/order/sales_order_base.html:87 +msgid "Issue Order" +msgstr "" + +#: order/templates/order/order_base.html:88 +#: order/templates/order/return_order_base.html:89 +msgid "Mark order as complete" +msgstr "" + +#: order/templates/order/order_base.html:89 +#: order/templates/order/return_order_base.html:90 +#: order/templates/order/sales_order_base.html:100 +msgid "Complete Order" +msgstr "" + +#: order/templates/order/order_base.html:96 +msgid "Supplier part thumbnail" +msgstr "" + +#: order/templates/order/order_base.html:116 +#: order/templates/order/return_order_base.html:109 +#: order/templates/order/sales_order_base.html:118 +msgid "Order Description" +msgstr "" + +#: order/templates/order/order_base.html:146 +msgid "No suppplier information available" +msgstr "" + +#: order/templates/order/order_base.html:159 +#: order/templates/order/sales_order_base.html:164 +msgid "Completed Line Items" +msgstr "" + +#: order/templates/order/order_base.html:165 +#: order/templates/order/sales_order_base.html:170 +#: order/templates/order/sales_order_base.html:180 +msgid "Incomplete" +msgstr "" + +#: order/templates/order/order_base.html:184 +#: order/templates/order/return_order_base.html:160 +#: report/templates/report/inventree_build_order_report.html:121 +msgid "Issued" +msgstr "" + +#: order/templates/order/order_base.html:229 +msgid "Total cost" +msgstr "" + +#: order/templates/order/order_base.html:233 +#: order/templates/order/return_order_base.html:202 +#: order/templates/order/sales_order_base.html:246 +msgid "Total cost could not be calculated" +msgstr "" + +#: order/templates/order/order_base.html:335 +msgid "Purchase Order QR Code" +msgstr "" + +#: order/templates/order/order_base.html:347 +msgid "Link Barcode to Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:9 +#: part/templates/part/import_wizard/ajax_match_fields.html:9 +#: part/templates/part/import_wizard/match_fields.html:9 +#: templates/patterns/wizard/match_fields.html:8 +msgid "Missing selections for the following required columns" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:20 +#: part/templates/part/import_wizard/ajax_match_fields.html:20 +#: part/templates/part/import_wizard/match_fields.html:20 +#: templates/patterns/wizard/match_fields.html:19 +msgid "Duplicate selections found, see below. Fix them then retry submitting." +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:29 +#: order/templates/order/order_wizard/match_parts.html:21 +#: part/templates/part/import_wizard/match_fields.html:29 +#: part/templates/part/import_wizard/match_references.html:21 +#: templates/patterns/wizard/match_fields.html:28 +msgid "Submit Selections" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:35 +#: part/templates/part/import_wizard/ajax_match_fields.html:28 +#: part/templates/part/import_wizard/match_fields.html:35 +#: templates/patterns/wizard/match_fields.html:34 +msgid "File Fields" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:42 +#: part/templates/part/import_wizard/ajax_match_fields.html:35 +#: part/templates/part/import_wizard/match_fields.html:42 +#: templates/patterns/wizard/match_fields.html:41 +msgid "Remove column" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:60 +#: part/templates/part/import_wizard/ajax_match_fields.html:53 +#: part/templates/part/import_wizard/match_fields.html:60 +#: templates/patterns/wizard/match_fields.html:59 +msgid "Duplicate selection" +msgstr "" + +#: order/templates/order/order_wizard/match_fields.html:71 +#: order/templates/order/order_wizard/match_parts.html:52 +#: part/templates/part/import_wizard/ajax_match_fields.html:64 +#: part/templates/part/import_wizard/ajax_match_references.html:42 +#: part/templates/part/import_wizard/match_fields.html:71 +#: part/templates/part/import_wizard/match_references.html:49 +#: templates/js/translated/bom.js:133 templates/js/translated/build.js:533 +#: templates/js/translated/build.js:1805 +#: templates/js/translated/purchase_order.js:696 +#: templates/js/translated/purchase_order.js:1288 +#: templates/js/translated/return_order.js:505 +#: templates/js/translated/sales_order.js:1145 +#: templates/js/translated/stock.js:720 templates/js/translated/stock.js:889 +#: templates/patterns/wizard/match_fields.html:70 +msgid "Remove row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:12 +#: part/templates/part/import_wizard/ajax_match_references.html:12 +#: part/templates/part/import_wizard/match_references.html:12 +msgid "Errors exist in the submitted data" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:28 +#: part/templates/part/import_wizard/ajax_match_references.html:21 +#: part/templates/part/import_wizard/match_references.html:28 +msgid "Row" +msgstr "" + +#: order/templates/order/order_wizard/match_parts.html:29 +msgid "Select Supplier Part" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:13 +msgid "Upload File for Purchase Order" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:14 +msgid "Order is already processed. Files cannot be uploaded." +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:27 +#: part/templates/part/import_wizard/ajax_part_upload.html:10 +#: part/templates/part/import_wizard/part_upload.html:26 +#: templates/patterns/wizard/upload.html:13 +#, python-format +msgid "Step %(step)s of %(count)s" +msgstr "" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:18 +msgid "Purchase Order Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:27 +#: order/templates/order/return_order_detail.html:24 +#: order/templates/order/sales_order_detail.html:24 +#: templates/js/translated/purchase_order.js:414 +#: templates/js/translated/return_order.js:458 +#: templates/js/translated/sales_order.js:237 +msgid "Add Line Item" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:31 +#: order/templates/order/purchase_order_detail.html:32 +#: order/templates/order/return_order_detail.html:28 +#: order/templates/order/return_order_detail.html:29 +msgid "Receive Line Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:50 +#: order/templates/order/return_order_detail.html:45 +#: order/templates/order/sales_order_detail.html:41 +msgid "Extra Lines" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:56 +#: order/templates/order/return_order_detail.html:51 +#: order/templates/order/sales_order_detail.html:47 +msgid "Add Extra Line" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:74 +msgid "Received Items" +msgstr "" + +#: order/templates/order/purchase_order_detail.html:99 +#: order/templates/order/return_order_detail.html:85 +#: order/templates/order/sales_order_detail.html:139 +msgid "Order Notes" +msgstr "" + +#: order/templates/order/return_order_base.html:18 +#: order/templates/order/sales_order_base.html:18 +msgid "Customer logo thumbnail" +msgstr "" + +#: order/templates/order/return_order_base.html:60 +msgid "Print return order report" +msgstr "" + +#: order/templates/order/return_order_base.html:64 +#: order/templates/order/sales_order_base.html:64 +msgid "Print packing list" +msgstr "" + +#: order/templates/order/return_order_base.html:141 +#: order/templates/order/sales_order_base.html:158 +#: templates/js/translated/return_order.js:308 +#: templates/js/translated/sales_order.js:833 +msgid "Customer Reference" +msgstr "" + +#: order/templates/order/return_order_base.html:198 +#: order/templates/order/sales_order_base.html:242 +#: part/templates/part/part_pricing.html:32 +#: part/templates/part/part_pricing.html:58 +#: part/templates/part/part_pricing.html:99 +#: part/templates/part/part_pricing.html:114 +#: templates/js/translated/part.js:1079 +#: templates/js/translated/purchase_order.js:1822 +#: templates/js/translated/return_order.js:380 +#: templates/js/translated/sales_order.js:891 +msgid "Total Cost" +msgstr "" + +#: order/templates/order/return_order_base.html:273 +msgid "Return Order QR Code" +msgstr "" + +#: order/templates/order/return_order_base.html:285 +msgid "Link Barcode to Return Order" +msgstr "" + +#: order/templates/order/return_order_sidebar.html:5 +msgid "Order Details" +msgstr "" + +#: order/templates/order/sales_order_base.html:60 +msgid "Print sales order report" +msgstr "" + +#: order/templates/order/sales_order_base.html:91 +#: order/templates/order/sales_order_base.html:92 +msgid "Ship Items" +msgstr "" + +#: order/templates/order/sales_order_base.html:95 +#: order/templates/order/sales_order_base.html:96 +msgid "Mark As Shipped" +msgstr "" + +#: order/templates/order/sales_order_base.html:99 +#: templates/js/translated/sales_order.js:536 +msgid "Complete Sales Order" +msgstr "" + +#: order/templates/order/sales_order_base.html:138 +msgid "This Sales Order has not been fully allocated" +msgstr "" + +#: order/templates/order/sales_order_base.html:176 +#: order/templates/order/sales_order_detail.html:99 +#: order/templates/order/so_sidebar.html:11 +msgid "Completed Shipments" +msgstr "" + +#: order/templates/order/sales_order_base.html:339 +msgid "Sales Order QR Code" +msgstr "" + +#: order/templates/order/sales_order_base.html:351 +msgid "Link Barcode to Sales Order" +msgstr "" + +#: order/templates/order/sales_order_detail.html:18 +msgid "Sales Order Items" +msgstr "" + +#: order/templates/order/sales_order_detail.html:67 +#: order/templates/order/so_sidebar.html:8 templates/InvenTree/index.html:284 +msgid "Pending Shipments" +msgstr "" + +#: order/templates/order/sales_order_detail.html:71 +#: templates/js/translated/bom.js:1277 templates/js/translated/build.js:1066 +#: templates/js/translated/filters.js:299 +msgid "Actions" +msgstr "" + +#: order/templates/order/sales_order_detail.html:80 +msgid "New Shipment" +msgstr "" + +#: order/views.py:120 +msgid "Match Supplier Parts" +msgstr "" + +#: order/views.py:406 +msgid "Sales order not found" +msgstr "" + +#: order/views.py:412 +msgid "Price not found" +msgstr "" + +#: order/views.py:415 +#, python-brace-format +msgid "Updated {part} unit-price to {price}" +msgstr "" + +#: order/views.py:421 +#, python-brace-format +msgid "Updated {part} unit-price to {price} and quantity to {qty}" +msgstr "" + +#: part/admin.py:48 part/models.py:1044 part/serializers.py:906 +#: part/templates/part/part_base.html:276 +#: report/templates/report/inventree_stock_location_report.html:103 +#: templates/js/translated/part.js:1233 templates/js/translated/part.js:2347 +#: templates/js/translated/stock.js:2122 +msgid "IPN" +msgstr "" + +#: part/admin.py:50 part/models.py:1053 part/templates/part/part_base.html:293 +#: report/models.py:161 templates/js/translated/part.js:1238 +#: templates/js/translated/part.js:2353 +msgid "Revision" +msgstr "" + +#: part/admin.py:53 part/admin.py:319 part/models.py:1026 +#: part/templates/part/category.html:91 part/templates/part/part_base.html:314 +msgid "Keywords" +msgstr "" + +#: part/admin.py:60 +msgid "Part Image" +msgstr "" + +#: part/admin.py:63 part/admin.py:302 part/stocktake.py:221 +msgid "Category ID" +msgstr "" + +#: part/admin.py:67 part/admin.py:304 part/serializers.py:891 +#: part/stocktake.py:222 +msgid "Category Name" +msgstr "" + +#: part/admin.py:71 part/admin.py:316 +msgid "Default Location ID" +msgstr "" + +#: part/admin.py:76 +msgid "Default Supplier ID" +msgstr "" + +#: part/admin.py:81 part/models.py:1012 part/templates/part/part_base.html:177 +msgid "Variant Of" +msgstr "" + +#: part/admin.py:84 part/models.py:1150 part/templates/part/part_base.html:203 +msgid "Minimum Stock" +msgstr "" + +#: part/admin.py:138 part/templates/part/part_sidebar.html:27 +msgid "Used In" +msgstr "" + +#: part/admin.py:150 part/serializers.py:916 +#: part/templates/part/part_base.html:248 stock/admin.py:236 +#: templates/js/translated/part.js:717 templates/js/translated/part.js:2159 +msgid "Building" +msgstr "" + +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 +#: templates/js/translated/part.js:976 +msgid "Minimum Cost" +msgstr "" + +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 +#: templates/js/translated/part.js:986 +msgid "Maximum Cost" +msgstr "" + +#: part/admin.py:308 part/admin.py:387 stock/admin.py:57 stock/admin.py:216 +msgid "Parent ID" +msgstr "" + +#: part/admin.py:312 part/admin.py:394 stock/admin.py:61 +msgid "Parent Name" +msgstr "" + +#: part/admin.py:320 part/templates/part/category.html:85 +#: part/templates/part/category.html:98 +msgid "Category Path" +msgstr "" + +#: part/admin.py:325 part/models.py:420 part/serializers.py:130 +#: part/serializers.py:290 part/serializers.py:426 +#: part/templates/part/cat_link.html:3 part/templates/part/category.html:20 +#: part/templates/part/category.html:138 part/templates/part/category.html:158 +#: part/templates/part/category_sidebar.html:9 +#: templates/InvenTree/index.html:36 templates/InvenTree/search.html:84 +#: templates/InvenTree/settings/sidebar.html:47 +#: templates/js/translated/part.js:2822 templates/js/translated/search.js:130 +#: templates/navbar.html:24 users/models.py:203 +msgid "Parts" +msgstr "" + +#: part/admin.py:378 +msgid "BOM Level" +msgstr "" + +#: part/admin.py:381 +msgid "BOM Item ID" +msgstr "" + +#: part/admin.py:391 +msgid "Parent IPN" +msgstr "" + +#: part/admin.py:405 +msgid "Part Revision" +msgstr "" + +#: part/admin.py:418 part/serializers.py:1365 +#: templates/js/translated/pricing.js:358 +#: templates/js/translated/pricing.js:1024 +msgid "Minimum Price" +msgstr "" + +#: part/admin.py:423 part/serializers.py:1380 +#: templates/js/translated/pricing.js:353 +#: templates/js/translated/pricing.js:1032 +msgid "Maximum Price" +msgstr "" + +#: part/api.py:104 +msgid "Starred" +msgstr "" + +#: part/api.py:106 +msgid "Filter by starred categories" +msgstr "" + +#: part/api.py:123 stock/api.py:310 +msgid "Depth" +msgstr "" + +#: part/api.py:123 +msgid "Filter by category depth" +msgstr "" + +#: part/api.py:141 stock/api.py:328 +msgid "Top Level" +msgstr "" + +#: part/api.py:143 +msgid "Filter by top-level categories" +msgstr "" + +#: part/api.py:156 stock/api.py:343 +msgid "Cascade" +msgstr "" + +#: part/api.py:158 +msgid "Include sub-categories in filtered results" +msgstr "" + +#: part/api.py:178 templates/js/translated/part.js:311 +msgid "Parent" +msgstr "" + +#: part/api.py:180 +msgid "Filter by parent category" +msgstr "" + +#: part/api.py:213 +msgid "Exclude Tree" +msgstr "" + +#: part/api.py:215 +msgid "Exclude sub-categories under the specified category" +msgstr "" + +#: part/api.py:440 +msgid "Has Results" +msgstr "" + +#: part/api.py:605 +msgid "Incoming Purchase Order" +msgstr "" + +#: part/api.py:623 +msgid "Outgoing Sales Order" +msgstr "" + +#: part/api.py:639 +msgid "Stock produced by Build Order" +msgstr "" + +#: part/api.py:723 +msgid "Stock required for Build Order" +msgstr "" + +#: part/api.py:871 +msgid "Validate entire Bill of Materials" +msgstr "" + +#: part/api.py:877 +msgid "This option must be selected" +msgstr "" + +#: part/api.py:913 +msgid "Is Revision" +msgstr "" + +#: part/api.py:923 +msgid "Has Revisions" +msgstr "" + +#: part/api.py:1114 +msgid "BOM Valid" +msgstr "" + +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 +#: part/serializers.py:441 part/serializers.py:1221 +#: part/templates/part/part_base.html:267 stock/api.py:780 +#: templates/InvenTree/settings/settings_staff_js.html:300 +#: templates/js/translated/notification.js:60 +#: templates/js/translated/part.js:2383 +msgid "Category" +msgstr "" + +#: part/api.py:1754 +msgid "Assembly part is testable" +msgstr "" + +#: part/api.py:1763 +msgid "Component part is testable" +msgstr "" + +#: part/api.py:1814 +msgid "Uses" +msgstr "" + +#: part/bom.py:183 part/models.py:108 part/models.py:1089 +#: part/templates/part/category.html:113 part/templates/part/part_base.html:383 +#: templates/js/translated/part.js:2397 +msgid "Default Location" +msgstr "" + +#: part/bom.py:184 part/serializers.py:924 +#: templates/email/low_stock_notification.html:16 +msgid "Total Stock" +msgstr "" + +#: part/forms.py:49 +msgid "Input quantity for price calculation" +msgstr "" + +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 +#: part/templates/part/part_app_base.html:10 +msgid "Part Category" +msgstr "" + +#: part/models.py:90 part/templates/part/category.html:133 +#: templates/InvenTree/search.html:97 templates/js/translated/search.js:158 +#: users/models.py:202 +msgid "Part Categories" +msgstr "" + +#: part/models.py:109 +msgid "Default location for parts in this category" +msgstr "" + +#: part/models.py:114 stock/models.py:192 templates/js/translated/part.js:2828 +#: templates/js/translated/stock.js:2857 +#: templates/js/translated/table_filters.js:246 +#: templates/js/translated/table_filters.js:290 +msgid "Structural" +msgstr "" + +#: part/models.py:116 +msgid "Parts may not be directly assigned to a structural category, but may be assigned to child categories." +msgstr "" + +#: part/models.py:125 +msgid "Default keywords" +msgstr "" + +#: part/models.py:126 +msgid "Default keywords for parts in this category" +msgstr "" + +#: part/models.py:132 stock/models.py:95 stock/models.py:174 +#: templates/InvenTree/settings/settings_staff_js.html:445 +msgid "Icon" +msgstr "" + +#: part/models.py:133 part/serializers.py:143 part/serializers.py:161 +#: stock/models.py:175 +msgid "Icon (optional)" +msgstr "" + +#: part/models.py:179 +msgid "You cannot make this part category structural because some parts are already assigned to it!" +msgstr "" + +#: part/models.py:514 +msgid "Cannot delete this part as it is locked" +msgstr "" + +#: part/models.py:517 +msgid "Cannot delete this part as it is still active" +msgstr "" + +#: part/models.py:522 +msgid "Cannot delete this part as it is used in an assembly" +msgstr "" + +#: part/models.py:560 +msgid "Invalid choice for parent part" +msgstr "" + +#: part/models.py:608 part/models.py:615 +#, python-brace-format +msgid "Part '{self}' cannot be used in BOM for '{parent}' (recursive)" +msgstr "" + +#: part/models.py:627 +#, python-brace-format +msgid "Part '{parent}' is used in BOM for '{self}' (recursive)" +msgstr "" + +#: part/models.py:690 +#, python-brace-format +msgid "IPN must match regex pattern {pattern}" +msgstr "" + +#: part/models.py:698 +msgid "Part cannot be a revision of itself" +msgstr "" + +#: part/models.py:705 +msgid "Cannot make a revision of a part which is already a revision" +msgstr "" + +#: part/models.py:712 +msgid "Revision code must be specified" +msgstr "" + +#: part/models.py:719 +msgid "Revisions are only allowed for assembly parts" +msgstr "" + +#: part/models.py:726 +msgid "Cannot make a revision of a template part" +msgstr "" + +#: part/models.py:732 +msgid "Parent part must point to the same template" +msgstr "" + +#: part/models.py:826 +msgid "Stock item with this serial number already exists" +msgstr "" + +#: part/models.py:927 +msgid "Duplicate IPN not allowed in part settings" +msgstr "" + +#: part/models.py:939 +msgid "Duplicate part revision already exists." +msgstr "" + +#: part/models.py:948 +msgid "Part with this Name, IPN and Revision already exists." +msgstr "" + +#: part/models.py:963 +msgid "Parts cannot be assigned to structural part categories!" +msgstr "" + +#: part/models.py:995 part/models.py:4103 +msgid "Part name" +msgstr "" + +#: part/models.py:1000 +msgid "Is Template" +msgstr "" + +#: part/models.py:1001 +msgid "Is this part a template part?" +msgstr "" + +#: part/models.py:1011 +msgid "Is this part a variant of another part?" +msgstr "" + +#: part/models.py:1019 +msgid "Part description (optional)" +msgstr "" + +#: part/models.py:1027 +msgid "Part keywords to improve visibility in search results" +msgstr "" + +#: part/models.py:1037 +msgid "Part category" +msgstr "" + +#: part/models.py:1052 +msgid "Part revision or version number" +msgstr "" + +#: part/models.py:1062 +msgid "Is this part a revision of another part?" +msgstr "" + +#: part/models.py:1063 part/templates/part/part_base.html:284 +msgid "Revision Of" +msgstr "" + +#: part/models.py:1087 +msgid "Where is this item normally stored?" +msgstr "" + +#: part/models.py:1133 part/templates/part/part_base.html:392 +msgid "Default Supplier" +msgstr "" + +#: part/models.py:1134 +msgid "Default supplier part" +msgstr "" + +#: part/models.py:1141 +msgid "Default Expiry" +msgstr "" + +#: part/models.py:1142 +msgid "Expiry time (in days) for stock items of this part" +msgstr "" + +#: part/models.py:1151 +msgid "Minimum allowed stock level" +msgstr "" + +#: part/models.py:1160 +msgid "Units of measure for this part" +msgstr "" + +#: part/models.py:1167 +msgid "Can this part be built from other parts?" +msgstr "" + +#: part/models.py:1173 +msgid "Can this part be used to build other parts?" +msgstr "" + +#: part/models.py:1179 +msgid "Does this part have tracking for unique items?" +msgstr "" + +#: part/models.py:1185 +msgid "Can this part have test results recorded against it?" +msgstr "" + +#: part/models.py:1191 +msgid "Can this part be purchased from external suppliers?" +msgstr "" + +#: part/models.py:1197 +msgid "Can this part be sold to customers?" +msgstr "" + +#: part/models.py:1201 +msgid "Is this part active?" +msgstr "" + +#: part/models.py:1206 templates/js/translated/part.js:821 +#: templates/js/translated/table_filters.js:724 +msgid "Locked" +msgstr "" + +#: part/models.py:1207 +msgid "Locked parts cannot be edited" +msgstr "" + +#: part/models.py:1213 +msgid "Is this a virtual part, such as a software product or license?" +msgstr "" + +#: part/models.py:1219 +msgid "BOM checksum" +msgstr "" + +#: part/models.py:1220 +msgid "Stored BOM checksum" +msgstr "" + +#: part/models.py:1228 +msgid "BOM checked by" +msgstr "" + +#: part/models.py:1233 +msgid "BOM checked date" +msgstr "" + +#: part/models.py:1249 +msgid "Creation User" +msgstr "" + +#: part/models.py:1259 +msgid "Owner responsible for this part" +msgstr "" + +#: part/models.py:1264 part/templates/part/part_base.html:355 +#: stock/templates/stock/item_base.html:447 +#: templates/js/translated/part.js:2490 +msgid "Last Stocktake" +msgstr "" + +#: part/models.py:2136 +msgid "Sell multiple" +msgstr "" + +#: part/models.py:3115 +msgid "Currency used to cache pricing calculations" +msgstr "" + +#: part/models.py:3131 +msgid "Minimum BOM Cost" +msgstr "" + +#: part/models.py:3132 +msgid "Minimum cost of component parts" +msgstr "" + +#: part/models.py:3138 +msgid "Maximum BOM Cost" +msgstr "" + +#: part/models.py:3139 +msgid "Maximum cost of component parts" +msgstr "" + +#: part/models.py:3145 +msgid "Minimum Purchase Cost" +msgstr "" + +#: part/models.py:3146 +msgid "Minimum historical purchase cost" +msgstr "" + +#: part/models.py:3152 +msgid "Maximum Purchase Cost" +msgstr "" + +#: part/models.py:3153 +msgid "Maximum historical purchase cost" +msgstr "" + +#: part/models.py:3159 +msgid "Minimum Internal Price" +msgstr "" + +#: part/models.py:3160 +msgid "Minimum cost based on internal price breaks" +msgstr "" + +#: part/models.py:3166 +msgid "Maximum Internal Price" +msgstr "" + +#: part/models.py:3167 +msgid "Maximum cost based on internal price breaks" +msgstr "" + +#: part/models.py:3173 +msgid "Minimum Supplier Price" +msgstr "" + +#: part/models.py:3174 +msgid "Minimum price of part from external suppliers" +msgstr "" + +#: part/models.py:3180 +msgid "Maximum Supplier Price" +msgstr "" + +#: part/models.py:3181 +msgid "Maximum price of part from external suppliers" +msgstr "" + +#: part/models.py:3187 +msgid "Minimum Variant Cost" +msgstr "" + +#: part/models.py:3188 +msgid "Calculated minimum cost of variant parts" +msgstr "" + +#: part/models.py:3194 +msgid "Maximum Variant Cost" +msgstr "" + +#: part/models.py:3195 +msgid "Calculated maximum cost of variant parts" +msgstr "" + +#: part/models.py:3202 +msgid "Override minimum cost" +msgstr "" + +#: part/models.py:3209 +msgid "Override maximum cost" +msgstr "" + +#: part/models.py:3216 +msgid "Calculated overall minimum cost" +msgstr "" + +#: part/models.py:3223 +msgid "Calculated overall maximum cost" +msgstr "" + +#: part/models.py:3229 +msgid "Minimum Sale Price" +msgstr "" + +#: part/models.py:3230 +msgid "Minimum sale price based on price breaks" +msgstr "" + +#: part/models.py:3236 +msgid "Maximum Sale Price" +msgstr "" + +#: part/models.py:3237 +msgid "Maximum sale price based on price breaks" +msgstr "" + +#: part/models.py:3243 +msgid "Minimum Sale Cost" +msgstr "" + +#: part/models.py:3244 +msgid "Minimum historical sale price" +msgstr "" + +#: part/models.py:3250 +msgid "Maximum Sale Cost" +msgstr "" + +#: part/models.py:3251 +msgid "Maximum historical sale price" +msgstr "" + +#: part/models.py:3270 +msgid "Part for stocktake" +msgstr "" + +#: part/models.py:3275 +msgid "Item Count" +msgstr "" + +#: part/models.py:3276 +msgid "Number of individual stock entries at time of stocktake" +msgstr "" + +#: part/models.py:3284 +msgid "Total available stock at time of stocktake" +msgstr "" + +#: part/models.py:3288 part/models.py:3371 +#: part/templates/part/part_scheduling.html:13 +#: report/templates/report/inventree_test_report.html:106 +#: templates/InvenTree/settings/plugin_settings.html:37 +#: templates/InvenTree/settings/settings_staff_js.html:543 +#: templates/js/translated/part.js:1092 templates/js/translated/pricing.js:826 +#: templates/js/translated/pricing.js:950 +#: templates/js/translated/purchase_order.js:1801 +#: templates/js/translated/stock.js:2906 +msgid "Date" +msgstr "" + +#: part/models.py:3289 +msgid "Date stocktake was performed" +msgstr "" + +#: part/models.py:3297 +msgid "Additional notes" +msgstr "" + +#: part/models.py:3307 +msgid "User who performed this stocktake" +msgstr "" + +#: part/models.py:3313 +msgid "Minimum Stock Cost" +msgstr "" + +#: part/models.py:3314 +msgid "Estimated minimum cost of stock on hand" +msgstr "" + +#: part/models.py:3320 +msgid "Maximum Stock Cost" +msgstr "" + +#: part/models.py:3321 +msgid "Estimated maximum cost of stock on hand" +msgstr "" + +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 +msgid "Report" +msgstr "" + +#: part/models.py:3378 +msgid "Stocktake report file (generated internally)" +msgstr "" + +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 +msgid "Part Count" +msgstr "" + +#: part/models.py:3384 +msgid "Number of parts covered by stocktake" +msgstr "" + +#: part/models.py:3394 +msgid "User who requested this stocktake report" +msgstr "" + +#: part/models.py:3404 +msgid "Part Sale Price Break" +msgstr "" + +#: part/models.py:3516 +msgid "Part Test Template" +msgstr "" + +#: part/models.py:3542 +msgid "Invalid template name - must include at least one alphanumeric character" +msgstr "" + +#: part/models.py:3563 part/models.py:3732 +msgid "Choices must be unique" +msgstr "" + +#: part/models.py:3574 +msgid "Test templates can only be created for testable parts" +msgstr "" + +#: part/models.py:3585 +msgid "Test template with the same key already exists for part" +msgstr "" + +#: part/models.py:3602 templates/js/translated/part.js:2898 +msgid "Test Name" +msgstr "" + +#: part/models.py:3603 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:3609 +msgid "Test Key" +msgstr "" + +#: part/models.py:3610 +msgid "Simplified key for the test" +msgstr "" + +#: part/models.py:3617 +msgid "Test Description" +msgstr "" + +#: part/models.py:3618 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:3622 report/models.py:216 +#: templates/js/translated/part.js:2919 +#: templates/js/translated/table_filters.js:502 +msgid "Enabled" +msgstr "" + +#: part/models.py:3622 +msgid "Is this test enabled?" +msgstr "" + +#: part/models.py:3627 templates/js/translated/part.js:2927 +#: templates/js/translated/table_filters.js:498 +msgid "Required" +msgstr "" + +#: part/models.py:3628 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:3633 templates/js/translated/part.js:2935 +msgid "Requires Value" +msgstr "" + +#: part/models.py:3634 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:3639 templates/js/translated/part.js:2942 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:3641 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 +msgid "Choices" +msgstr "" + +#: part/models.py:3648 +msgid "Valid choices for this test (comma-separated)" +msgstr "" + +#: part/models.py:3680 +msgid "Part Parameter Template" +msgstr "" + +#: part/models.py:3707 +msgid "Checkbox parameters cannot have units" +msgstr "" + +#: part/models.py:3712 +msgid "Checkbox parameters cannot have choices" +msgstr "" + +#: part/models.py:3749 +msgid "Parameter template name must be unique" +msgstr "" + +#: part/models.py:3764 +msgid "Parameter Name" +msgstr "" + +#: part/models.py:3771 +msgid "Physical units for this parameter" +msgstr "" + +#: part/models.py:3779 +msgid "Parameter description" +msgstr "" + +#: part/models.py:3785 templates/js/translated/part.js:1634 +#: templates/js/translated/table_filters.js:837 +msgid "Checkbox" +msgstr "" + +#: part/models.py:3786 +msgid "Is this parameter a checkbox?" +msgstr "" + +#: part/models.py:3792 +msgid "Valid choices for this parameter (comma-separated)" +msgstr "" + +#: part/models.py:3826 +msgid "Part Parameter" +msgstr "" + +#: part/models.py:3852 +msgid "Parameter cannot be modified - part is locked" +msgstr "" + +#: part/models.py:3890 +msgid "Invalid choice for parameter value" +msgstr "" + +#: part/models.py:3939 +msgid "Parent Part" +msgstr "" + +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 +#: templates/InvenTree/settings/settings_staff_js.html:295 +msgid "Parameter Template" +msgstr "" + +#: part/models.py:3953 +msgid "Parameter Value" +msgstr "" + +#: part/models.py:4003 +msgid "Part Category Parameter Template" +msgstr "" + +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 +msgid "Default Value" +msgstr "" + +#: part/models.py:4063 +msgid "Default Parameter Value" +msgstr "" + +#: part/models.py:4101 +msgid "Part ID or part name" +msgstr "" + +#: part/models.py:4102 +msgid "Unique part ID value" +msgstr "" + +#: part/models.py:4104 +msgid "Part IPN value" +msgstr "" + +#: part/models.py:4105 +msgid "Level" +msgstr "" + +#: part/models.py:4105 +msgid "BOM level" +msgstr "" + +#: part/models.py:4215 +msgid "BOM item cannot be modified - assembly is locked" +msgstr "" + +#: part/models.py:4222 +msgid "BOM item cannot be modified - variant assembly is locked" +msgstr "" + +#: part/models.py:4232 +msgid "Select parent part" +msgstr "" + +#: part/models.py:4242 +msgid "Sub part" +msgstr "" + +#: part/models.py:4243 +msgid "Select part to be used in BOM" +msgstr "" + +#: part/models.py:4254 +msgid "BOM quantity for this BOM item" +msgstr "" + +#: part/models.py:4260 +msgid "This BOM item is optional" +msgstr "" + +#: part/models.py:4266 +msgid "This BOM item is consumable (it is not tracked in build orders)" +msgstr "" + +#: part/models.py:4273 part/templates/part/upload_bom.html:55 +msgid "Overage" +msgstr "" + +#: part/models.py:4274 +msgid "Estimated build wastage quantity (absolute or percentage)" +msgstr "" + +#: part/models.py:4281 +msgid "BOM item reference" +msgstr "" + +#: part/models.py:4289 +msgid "BOM item notes" +msgstr "" + +#: part/models.py:4295 +msgid "Checksum" +msgstr "" + +#: part/models.py:4296 +msgid "BOM line checksum" +msgstr "" + +#: part/models.py:4301 templates/js/translated/table_filters.js:181 +msgid "Validated" +msgstr "" + +#: part/models.py:4302 +msgid "This BOM item has been validated" +msgstr "" + +#: part/models.py:4307 part/templates/part/upload_bom.html:57 +#: templates/js/translated/bom.js:1054 +#: templates/js/translated/table_filters.js:185 +#: templates/js/translated/table_filters.js:218 +msgid "Gets inherited" +msgstr "" + +#: part/models.py:4308 +msgid "This BOM item is inherited by BOMs for variant parts" +msgstr "" + +#: part/models.py:4314 +msgid "Stock items for variant parts can be used for this BOM item" +msgstr "" + +#: part/models.py:4399 stock/models.py:689 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:4409 part/models.py:4411 +msgid "Sub part must be specified" +msgstr "" + +#: part/models.py:4554 +msgid "BOM Item Substitute" +msgstr "" + +#: part/models.py:4575 +msgid "Substitute part cannot be the same as the master part" +msgstr "" + +#: part/models.py:4588 +msgid "Parent BOM item" +msgstr "" + +#: part/models.py:4596 +msgid "Substitute part" +msgstr "" + +#: part/models.py:4612 +msgid "Part 1" +msgstr "" + +#: part/models.py:4620 +msgid "Part 2" +msgstr "" + +#: part/models.py:4621 +msgid "Select Related Part" +msgstr "" + +#: part/models.py:4640 +msgid "Part relationship cannot be created between a part and itself" +msgstr "" + +#: part/models.py:4645 +msgid "Duplicate relationship already exists" +msgstr "" + +#: part/serializers.py:124 +msgid "Parent Category" +msgstr "" + +#: part/serializers.py:125 templates/js/translated/part.js:312 +msgid "Parent part category" +msgstr "" + +#: part/serializers.py:132 part/serializers.py:158 +#: part/templates/part/category.html:119 part/templates/part/category.html:204 +#: part/templates/part/category_sidebar.html:7 +msgid "Subcategories" +msgstr "" + +#: part/serializers.py:197 +msgid "Results" +msgstr "" + +#: part/serializers.py:198 +msgid "Number of results recorded against this template" +msgstr "" + +#: part/serializers.py:225 part/serializers.py:243 stock/serializers.py:623 +msgid "Purchase currency of this stock item" +msgstr "" + +#: part/serializers.py:291 +msgid "Number of parts using this template" +msgstr "" + +#: part/serializers.py:432 +msgid "No parts selected" +msgstr "" + +#: part/serializers.py:442 +msgid "Select category" +msgstr "" + +#: part/serializers.py:477 +msgid "Original Part" +msgstr "" + +#: part/serializers.py:478 +msgid "Select original part to duplicate" +msgstr "" + +#: part/serializers.py:483 +msgid "Copy Image" +msgstr "" + +#: part/serializers.py:484 +msgid "Copy image from original part" +msgstr "" + +#: part/serializers.py:490 part/templates/part/detail.html:293 +msgid "Copy BOM" +msgstr "" + +#: part/serializers.py:491 +msgid "Copy bill of materials from original part" +msgstr "" + +#: part/serializers.py:497 +msgid "Copy Parameters" +msgstr "" + +#: part/serializers.py:498 +msgid "Copy parameter data from original part" +msgstr "" + +#: part/serializers.py:504 +msgid "Copy Notes" +msgstr "" + +#: part/serializers.py:505 +msgid "Copy notes from original part" +msgstr "" + +#: part/serializers.py:523 +msgid "Initial Stock Quantity" +msgstr "" + +#: part/serializers.py:525 +msgid "Specify initial stock quantity for this Part. If quantity is zero, no stock is added." +msgstr "" + +#: part/serializers.py:532 +msgid "Initial Stock Location" +msgstr "" + +#: part/serializers.py:533 +msgid "Specify initial stock location for this Part" +msgstr "" + +#: part/serializers.py:550 +msgid "Select supplier (or leave blank to skip)" +msgstr "" + +#: part/serializers.py:566 +msgid "Select manufacturer (or leave blank to skip)" +msgstr "" + +#: part/serializers.py:576 +msgid "Manufacturer part number" +msgstr "" + +#: part/serializers.py:583 +msgid "Selected company is not a valid supplier" +msgstr "" + +#: part/serializers.py:592 +msgid "Selected company is not a valid manufacturer" +msgstr "" + +#: part/serializers.py:603 +msgid "Manufacturer part matching this MPN already exists" +msgstr "" + +#: part/serializers.py:610 +msgid "Supplier part matching this SKU already exists" +msgstr "" + +#: part/serializers.py:922 +msgid "Revisions" +msgstr "" + +#: part/serializers.py:927 +msgid "Unallocated Stock" +msgstr "" + +#: part/serializers.py:930 +msgid "Variant Stock" +msgstr "" + +#: part/serializers.py:960 part/templates/part/copy_part.html:9 +#: templates/js/translated/part.js:474 +msgid "Duplicate Part" +msgstr "" + +#: part/serializers.py:961 +msgid "Copy initial data from another Part" +msgstr "" + +#: part/serializers.py:967 templates/js/translated/part.js:103 +msgid "Initial Stock" +msgstr "" + +#: part/serializers.py:968 +msgid "Create Part with initial stock quantity" +msgstr "" + +#: part/serializers.py:974 +msgid "Supplier Information" +msgstr "" + +#: part/serializers.py:975 +msgid "Add initial supplier information for this part" +msgstr "" + +#: part/serializers.py:983 +msgid "Copy Category Parameters" +msgstr "" + +#: part/serializers.py:984 +msgid "Copy parameter templates from selected part category" +msgstr "" + +#: part/serializers.py:989 +msgid "Existing Image" +msgstr "" + +#: part/serializers.py:990 +msgid "Filename of an existing part image" +msgstr "" + +#: part/serializers.py:1007 +msgid "Image file does not exist" +msgstr "" + +#: part/serializers.py:1213 +msgid "Limit stocktake report to a particular part, and any variant parts" +msgstr "" + +#: part/serializers.py:1223 +msgid "Limit stocktake report to a particular part category, and any child categories" +msgstr "" + +#: part/serializers.py:1233 +msgid "Limit stocktake report to a particular stock location, and any child locations" +msgstr "" + +#: part/serializers.py:1239 +msgid "Exclude External Stock" +msgstr "" + +#: part/serializers.py:1240 +msgid "Exclude stock items in external locations" +msgstr "" + +#: part/serializers.py:1245 +msgid "Generate Report" +msgstr "" + +#: part/serializers.py:1246 +msgid "Generate report file containing calculated stocktake data" +msgstr "" + +#: part/serializers.py:1251 +msgid "Update Parts" +msgstr "" + +#: part/serializers.py:1252 +msgid "Update specified parts with calculated stocktake data" +msgstr "" + +#: part/serializers.py:1260 +msgid "Stocktake functionality is not enabled" +msgstr "" + +#: part/serializers.py:1366 +msgid "Override calculated value for minimum price" +msgstr "" + +#: part/serializers.py:1373 +msgid "Minimum price currency" +msgstr "" + +#: part/serializers.py:1381 +msgid "Override calculated value for maximum price" +msgstr "" + +#: part/serializers.py:1388 +msgid "Maximum price currency" +msgstr "" + +#: part/serializers.py:1417 +msgid "Update" +msgstr "" + +#: part/serializers.py:1418 +msgid "Update pricing for this part" +msgstr "" + +#: part/serializers.py:1441 +#, python-brace-format +msgid "Could not convert from provided currencies to {default_currency}" +msgstr "" + +#: part/serializers.py:1448 +msgid "Minimum price must not be greater than maximum price" +msgstr "" + +#: part/serializers.py:1451 +msgid "Maximum price must not be less than minimum price" +msgstr "" + +#: part/serializers.py:1595 +msgid "Select the parent assembly" +msgstr "" + +#: part/serializers.py:1604 +msgid "Component Name" +msgstr "" + +#: part/serializers.py:1607 +msgid "Component IPN" +msgstr "" + +#: part/serializers.py:1610 +msgid "Component Description" +msgstr "" + +#: part/serializers.py:1616 +msgid "Select the component part" +msgstr "" + +#: part/serializers.py:1625 part/templates/part/part_base.html:242 +#: templates/js/translated/bom.js:1219 +msgid "Can Build" +msgstr "" + +#: part/serializers.py:1856 +msgid "Select part to copy BOM from" +msgstr "" + +#: part/serializers.py:1864 +msgid "Remove Existing Data" +msgstr "" + +#: part/serializers.py:1865 +msgid "Remove existing BOM items before copying" +msgstr "" + +#: part/serializers.py:1870 +msgid "Include Inherited" +msgstr "" + +#: part/serializers.py:1871 +msgid "Include BOM items which are inherited from templated parts" +msgstr "" + +#: part/serializers.py:1876 +msgid "Skip Invalid Rows" +msgstr "" + +#: part/serializers.py:1877 +msgid "Enable this option to skip invalid rows" +msgstr "" + +#: part/serializers.py:1882 +msgid "Copy Substitute Parts" +msgstr "" + +#: part/serializers.py:1883 +msgid "Copy substitute parts when duplicate BOM items" +msgstr "" + +#: part/serializers.py:1920 +msgid "Clear Existing BOM" +msgstr "" + +#: part/serializers.py:1921 +msgid "Delete existing BOM items before uploading" +msgstr "" + +#: part/serializers.py:1953 +msgid "No part column specified" +msgstr "" + +#: part/serializers.py:1997 +msgid "Multiple matching parts found" +msgstr "" + +#: part/serializers.py:2000 +msgid "No matching part found" +msgstr "" + +#: part/serializers.py:2002 +msgid "Part is not designated as a component" +msgstr "" + +#: part/serializers.py:2011 +msgid "Quantity not provided" +msgstr "" + +#: part/serializers.py:2019 +msgid "Invalid quantity" +msgstr "" + +#: part/serializers.py:2042 +msgid "At least one BOM item is required" +msgstr "" + +#: part/stocktake.py:224 templates/js/translated/part.js:1073 +#: templates/js/translated/part.js:1828 templates/js/translated/part.js:1884 +#: templates/js/translated/purchase_order.js:2154 +msgid "Total Quantity" +msgstr "" + +#: part/stocktake.py:225 +msgid "Total Cost Min" +msgstr "" + +#: part/stocktake.py:226 +msgid "Total Cost Max" +msgstr "" + +#: part/stocktake.py:284 +msgid "Stocktake Report Available" +msgstr "" + +#: part/stocktake.py:285 +msgid "A new stocktake report is available for download" +msgstr "" + +#: part/tasks.py:37 +msgid "Low stock notification" +msgstr "" + +#: part/tasks.py:39 +#, python-brace-format +msgid "The available stock for {part.name} has fallen below the configured minimum level" +msgstr "" + +#: part/templates/part/bom.html:6 +msgid "You do not have permission to edit the BOM." +msgstr "" + +#: part/templates/part/bom.html:15 +msgid "The BOM this part has been changed, and must be validated" +msgstr "" + +#: part/templates/part/bom.html:17 +#, python-format +msgid "This BOM was last checked by %(checker)s on %(check_date)s" +msgstr "" + +#: part/templates/part/bom.html:21 +msgid "This BOM has not been validated." +msgstr "" + +#: part/templates/part/category.html:32 +msgid "Perform stocktake for this part category" +msgstr "" + +#: part/templates/part/category.html:38 part/templates/part/category.html:42 +msgid "You are subscribed to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:46 +msgid "Subscribe to notifications for this category" +msgstr "" + +#: part/templates/part/category.html:52 +msgid "Category Actions" +msgstr "" + +#: part/templates/part/category.html:57 +msgid "Edit category" +msgstr "" + +#: part/templates/part/category.html:58 +msgid "Edit Category" +msgstr "" + +#: part/templates/part/category.html:62 +msgid "Delete category" +msgstr "" + +#: part/templates/part/category.html:63 +msgid "Delete Category" +msgstr "" + +#: part/templates/part/category.html:99 +msgid "Top level part category" +msgstr "" + +#: part/templates/part/category.html:124 +msgid "Parts (Including subcategories)" +msgstr "" + +#: part/templates/part/category.html:162 +msgid "Create new part" +msgstr "" + +#: part/templates/part/category.html:163 templates/js/translated/bom.js:444 +msgid "New Part" +msgstr "" + +#: part/templates/part/category.html:189 +#: templates/InvenTree/settings/part_parameters.html:7 +#: templates/InvenTree/settings/sidebar.html:49 +msgid "Part Parameters" +msgstr "" + +#: part/templates/part/category.html:208 +msgid "Create new part category" +msgstr "" + +#: part/templates/part/category.html:209 +msgid "New Category" +msgstr "" + +#: part/templates/part/category_sidebar.html:13 +msgid "Import Parts" +msgstr "" + +#: part/templates/part/copy_part.html:10 +#, python-format +msgid "Make a copy of part '%(full_name)s'." +msgstr "" + +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 +msgid "Possible Matching Parts" +msgstr "" + +#: part/templates/part/copy_part.html:15 +#: part/templates/part/create_part.html:12 +msgid "The new part may be a duplicate of these existing parts" +msgstr "" + +#: part/templates/part/create_part.html:17 +#, python-format +msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)" +msgstr "" + +#: part/templates/part/detail.html:20 +msgid "Part Stock" +msgstr "" + +#: part/templates/part/detail.html:44 +msgid "Refresh scheduling data" +msgstr "" + +#: part/templates/part/detail.html:45 part/templates/part/prices.html:15 +#: templates/js/translated/tables.js:552 +msgid "Refresh" +msgstr "" + +#: part/templates/part/detail.html:66 +msgid "Add stocktake information" +msgstr "" + +#: part/templates/part/detail.html:67 part/templates/part/part_sidebar.html:50 +#: stock/admin.py:256 templates/InvenTree/settings/part_stocktake.html:30 +#: templates/InvenTree/settings/sidebar.html:53 +#: templates/js/translated/stock.js:2302 users/models.py:204 +msgid "Stocktake" +msgstr "" + +#: part/templates/part/detail.html:83 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/detail.html:88 +msgid "Add Test Template" +msgstr "" + +#: part/templates/part/detail.html:106 +msgid "Part Test Statistics" +msgstr "" + +#: part/templates/part/detail.html:155 stock/templates/stock/item.html:49 +msgid "Sales Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:172 +msgid "Part Notes" +msgstr "" + +#: part/templates/part/detail.html:187 +msgid "Part Variants" +msgstr "" + +#: part/templates/part/detail.html:191 +msgid "Create new variant" +msgstr "" + +#: part/templates/part/detail.html:192 +msgid "New Variant" +msgstr "" + +#: part/templates/part/detail.html:215 +msgid "Add new parameter" +msgstr "" + +#: part/templates/part/detail.html:248 part/templates/part/part_sidebar.html:60 +msgid "Related Parts" +msgstr "" + +#: part/templates/part/detail.html:252 part/templates/part/detail.html:253 +msgid "Add Related" +msgstr "" + +#: part/templates/part/detail.html:271 part/templates/part/part_sidebar.html:17 +#: report/templates/report/inventree_bill_of_materials_report.html:100 +msgid "Bill of Materials" +msgstr "" + +#: part/templates/part/detail.html:276 +msgid "Export actions" +msgstr "" + +#: part/templates/part/detail.html:280 templates/js/translated/bom.js:340 +msgid "Export BOM" +msgstr "" + +#: part/templates/part/detail.html:282 +msgid "Print BOM Report" +msgstr "" + +#: part/templates/part/detail.html:288 +msgid "BOM actions" +msgstr "" + +#: part/templates/part/detail.html:292 +msgid "Upload BOM" +msgstr "" + +#: part/templates/part/detail.html:294 +msgid "Validate BOM" +msgstr "" + +#: part/templates/part/detail.html:299 part/templates/part/detail.html:300 +#: templates/js/translated/bom.js:1320 templates/js/translated/bom.js:1321 +msgid "Add BOM Item" +msgstr "" + +#: part/templates/part/detail.html:313 +msgid "Assemblies" +msgstr "" + +#: part/templates/part/detail.html:329 +msgid "Part Builds" +msgstr "" + +#: part/templates/part/detail.html:354 stock/templates/stock/item.html:36 +msgid "Build Order Allocations" +msgstr "" + +#: part/templates/part/detail.html:368 +msgid "Part Suppliers" +msgstr "" + +#: part/templates/part/detail.html:388 +msgid "Part Manufacturers" +msgstr "" + +#: part/templates/part/detail.html:672 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:680 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:765 +msgid "Add Test Result Template" +msgstr "" + +#: part/templates/part/import_wizard/ajax_part_upload.html:29 +#: part/templates/part/import_wizard/part_upload.html:14 +msgid "Insufficient privileges." +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:13 +msgid "Import Parts from File" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:31 +msgid "Requirements for part import" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:33 +msgid "The part import file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:33 +msgid "Part Import Template" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:89 +msgid "Download Part Import Template" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:92 +#: templates/js/translated/bom.js:309 templates/js/translated/bom.js:343 +#: templates/js/translated/order.js:154 templates/js/translated/tables.js:189 +msgid "Format" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:93 +#: templates/js/translated/bom.js:310 templates/js/translated/bom.js:344 +#: templates/js/translated/order.js:155 +msgid "Select file format" +msgstr "" + +#: part/templates/part/part_app_base.html:12 +msgid "Part List" +msgstr "" + +#: part/templates/part/part_base.html:25 part/templates/part/part_base.html:29 +msgid "You are subscribed to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:33 +msgid "Subscribe to notifications for this part" +msgstr "" + +#: part/templates/part/part_base.html:52 +#: stock/templates/stock/item_base.html:61 +#: stock/templates/stock/location.html:71 templates/js/translated/label.js:136 +msgid "Print Label" +msgstr "" + +#: part/templates/part/part_base.html:58 +msgid "Show pricing information" +msgstr "" + +#: part/templates/part/part_base.html:63 +#: stock/templates/stock/item_base.html:106 +#: stock/templates/stock/location.html:80 +msgid "Stock actions" +msgstr "" + +#: part/templates/part/part_base.html:70 +msgid "Count part stock" +msgstr "" + +#: part/templates/part/part_base.html:76 +msgid "Transfer part stock" +msgstr "" + +#: part/templates/part/part_base.html:91 templates/js/translated/part.js:2299 +msgid "Part actions" +msgstr "" + +#: part/templates/part/part_base.html:94 +msgid "Duplicate part" +msgstr "" + +#: part/templates/part/part_base.html:97 +msgid "Edit part" +msgstr "" + +#: part/templates/part/part_base.html:100 +msgid "Delete part" +msgstr "" + +#: part/templates/part/part_base.html:119 +msgid "Part is a template part (variants can be made from this part)" +msgstr "" + +#: part/templates/part/part_base.html:123 +msgid "Part can be assembled from other parts" +msgstr "" + +#: part/templates/part/part_base.html:127 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/part_base.html:131 +msgid "Part stock is tracked by serial number" +msgstr "" + +#: part/templates/part/part_base.html:135 +msgid "Part can be purchased from external suppliers" +msgstr "" + +#: part/templates/part/part_base.html:139 +msgid "Part can be sold to customers" +msgstr "" + +#: part/templates/part/part_base.html:145 +msgid "Part is not active" +msgstr "" + +#: part/templates/part/part_base.html:153 +msgid "Part is virtual (not a physical part)" +msgstr "" + +#: part/templates/part/part_base.html:163 +#: part/templates/part/part_base.html:697 +msgid "Show Part Details" +msgstr "" + +#: part/templates/part/part_base.html:217 +msgid "Required for Orders" +msgstr "" + +#: part/templates/part/part_base.html:225 +#: stock/templates/stock/item_base.html:384 +msgid "Allocated to Build Orders" +msgstr "" + +#: part/templates/part/part_base.html:234 +#: stock/templates/stock/item_base.html:377 +msgid "Allocated to Sales Orders" +msgstr "" + +#: part/templates/part/part_base.html:307 +msgid "Minimum stock level" +msgstr "" + +#: part/templates/part/part_base.html:338 templates/js/translated/bom.js:1071 +#: templates/js/translated/part.js:1271 templates/js/translated/part.js:2463 +#: templates/js/translated/pricing.js:391 +#: templates/js/translated/pricing.js:1054 +msgid "Price Range" +msgstr "" + +#: part/templates/part/part_base.html:368 +msgid "Latest Serial Number" +msgstr "" + +#: part/templates/part/part_base.html:372 +#: stock/templates/stock/item_base.html:318 +msgid "Search for serial number" +msgstr "" + +#: part/templates/part/part_base.html:460 +msgid "Part QR Code" +msgstr "" + +#: part/templates/part/part_base.html:477 +msgid "Link Barcode to Part" +msgstr "" + +#: part/templates/part/part_base.html:527 +msgid "Calculate" +msgstr "" + +#: part/templates/part/part_base.html:544 +msgid "Remove associated image from this part" +msgstr "" + +#: part/templates/part/part_base.html:595 +msgid "No matching images found" +msgstr "" + +#: part/templates/part/part_base.html:691 +msgid "Hide Part Details" +msgstr "" + +#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:76 +#: part/templates/part/prices.html:227 templates/js/translated/pricing.js:485 +msgid "Supplier Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:26 +#: part/templates/part/part_pricing.html:52 +#: part/templates/part/part_pricing.html:95 +#: part/templates/part/part_pricing.html:110 +msgid "Unit Cost" +msgstr "" + +#: part/templates/part/part_pricing.html:40 +msgid "No supplier pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:90 +#: part/templates/part/prices.html:250 +msgid "BOM Pricing" +msgstr "" + +#: part/templates/part/part_pricing.html:66 +msgid "Unit Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:72 +msgid "Total Purchase Price" +msgstr "" + +#: part/templates/part/part_pricing.html:83 +msgid "No BOM pricing available" +msgstr "" + +#: part/templates/part/part_pricing.html:92 +msgid "Internal Price" +msgstr "" + +#: part/templates/part/part_pricing.html:123 +msgid "No pricing information is available for this part." +msgstr "" + +#: part/templates/part/part_scheduling.html:14 +msgid "Scheduled Quantity" +msgstr "" + +#: part/templates/part/part_sidebar.html:11 +msgid "Variants" +msgstr "" + +#: part/templates/part/part_sidebar.html:14 +#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:21 +#: stock/templates/stock/stock_app_base.html:10 +#: templates/InvenTree/search.html:153 +#: templates/InvenTree/settings/sidebar.html:51 +#: templates/js/translated/part.js:1249 templates/js/translated/part.js:2152 +#: templates/js/translated/part.js:2411 templates/js/translated/stock.js:1066 +#: templates/js/translated/stock.js:2156 templates/navbar.html:31 +msgid "Stock" +msgstr "" + +#: part/templates/part/part_sidebar.html:30 +#: templates/InvenTree/settings/sidebar.html:39 +msgid "Pricing" +msgstr "" + +#: part/templates/part/part_sidebar.html:44 +msgid "Scheduling" +msgstr "" + +#: part/templates/part/part_sidebar.html:54 +msgid "Test Templates" +msgstr "" + +#: part/templates/part/part_thumb.html:11 +msgid "Select from existing images" +msgstr "" + +#: part/templates/part/prices.html:11 +msgid "Pricing Overview" +msgstr "" + +#: part/templates/part/prices.html:14 +msgid "Refresh Part Pricing" +msgstr "" + +#: part/templates/part/prices.html:17 +msgid "Override Part Pricing" +msgstr "" + +#: part/templates/part/prices.html:18 +#: templates/InvenTree/settings/settings_staff_js.html:80 +#: templates/InvenTree/settings/user.html:24 +#: templates/js/translated/helpers.js:103 +#: templates/js/translated/pricing.js:628 templates/notes_buttons.html:3 +#: templates/notes_buttons.html:4 +msgid "Edit" +msgstr "" + +#: part/templates/part/prices.html:28 stock/admin.py:252 +#: stock/templates/stock/item_base.html:442 +#: templates/js/translated/company.js:1703 +#: templates/js/translated/company.js:1713 +#: templates/js/translated/stock.js:2332 +msgid "Last Updated" +msgstr "" + +#: part/templates/part/prices.html:37 part/templates/part/prices.html:127 +msgid "Price Category" +msgstr "" + +#: part/templates/part/prices.html:38 part/templates/part/prices.html:128 +msgid "Minimum" +msgstr "" + +#: part/templates/part/prices.html:39 part/templates/part/prices.html:129 +msgid "Maximum" +msgstr "" + +#: part/templates/part/prices.html:51 part/templates/part/prices.html:174 +msgid "Internal Pricing" +msgstr "" + +#: part/templates/part/prices.html:64 part/templates/part/prices.html:206 +msgid "Purchase History" +msgstr "" + +#: part/templates/part/prices.html:98 part/templates/part/prices.html:274 +msgid "Variant Pricing" +msgstr "" + +#: part/templates/part/prices.html:106 +msgid "Pricing Overrides" +msgstr "" + +#: part/templates/part/prices.html:113 +msgid "Overall Pricing" +msgstr "" + +#: part/templates/part/prices.html:149 part/templates/part/prices.html:326 +msgid "Sale History" +msgstr "" + +#: part/templates/part/prices.html:157 +msgid "Sale price data is not available for this part" +msgstr "" + +#: part/templates/part/prices.html:164 +msgid "Price range data is not available for this part." +msgstr "" + +#: part/templates/part/prices.html:175 part/templates/part/prices.html:207 +#: part/templates/part/prices.html:228 part/templates/part/prices.html:251 +#: part/templates/part/prices.html:275 part/templates/part/prices.html:298 +#: part/templates/part/prices.html:327 +msgid "Jump to overview" +msgstr "" + +#: part/templates/part/prices.html:180 +msgid "Add Internal Price Break" +msgstr "" + +#: part/templates/part/prices.html:297 +msgid "Sale Pricing" +msgstr "" + +#: part/templates/part/prices.html:303 +msgid "Add Sell Price Break" +msgstr "" + +#: part/templates/part/pricing_javascript.html:24 +msgid "Update Pricing" +msgstr "" + +#: part/templates/part/stock_count.html:7 +#: templates/js/translated/model_renderers.js:228 +#: templates/js/translated/part.js:707 templates/js/translated/part.js:2147 +#: templates/js/translated/part.js:2149 +msgid "No Stock" +msgstr "" + +#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:120 +msgid "Low Stock" +msgstr "" + +#: part/templates/part/upload_bom.html:8 +msgid "Return to BOM" +msgstr "" + +#: part/templates/part/upload_bom.html:13 +msgid "Upload Bill of Materials" +msgstr "" + +#: part/templates/part/upload_bom.html:19 +msgid "BOM upload requirements" +msgstr "" + +#: part/templates/part/upload_bom.html:23 +#: part/templates/part/upload_bom.html:90 +msgid "Upload BOM File" +msgstr "" + +#: part/templates/part/upload_bom.html:29 +msgid "Submit BOM Data" +msgstr "" + +#: part/templates/part/upload_bom.html:37 +msgid "Requirements for BOM upload" +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "The BOM file must contain the required named columns as provided in the " +msgstr "" + +#: part/templates/part/upload_bom.html:39 +msgid "BOM Upload Template" +msgstr "" + +#: part/templates/part/upload_bom.html:40 +msgid "Each part must already exist in the database" +msgstr "" + +#: part/templates/part/variant_part.html:9 +msgid "Create new part variant" +msgstr "" + +#: part/templates/part/variant_part.html:10 +msgid "Create a new variant part from this template" +msgstr "" + +#: part/views.py:111 +msgid "Match References" +msgstr "" + +#: part/views.py:275 +#, python-brace-format +msgid "Can't import part {new_part.name} because there is no category assigned" +msgstr "" + +#: part/views.py:425 +msgid "Select Part Image" +msgstr "" + +#: part/views.py:448 +msgid "Updated part image" +msgstr "" + +#: part/views.py:451 +msgid "Part image not found" +msgstr "" + +#: part/views.py:545 +msgid "Part Pricing" +msgstr "" + +#: plugin/api.py:174 +msgid "Plugin cannot be deleted as it is currently active" +msgstr "" + +#: plugin/base/action/api.py:32 +msgid "No action specified" +msgstr "" + +#: plugin/base/action/api.py:41 +msgid "No matching action found" +msgstr "" + +#: plugin/base/barcodes/api.py:125 plugin/base/barcodes/api.py:370 +#: plugin/base/barcodes/api.py:545 +msgid "No match found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:129 +msgid "Match found for barcode data" +msgstr "" + +#: plugin/base/barcodes/api.py:163 plugin/base/barcodes/serializers.py:45 +msgid "Model is not supported" +msgstr "" + +#: plugin/base/barcodes/api.py:168 +msgid "Model instance not found" +msgstr "" + +#: plugin/base/barcodes/api.py:197 +#: templates/js/translated/purchase_order.js:1468 +msgid "Barcode matches existing item" +msgstr "" + +#: plugin/base/barcodes/api.py:336 +msgid "No matching part data found" +msgstr "" + +#: plugin/base/barcodes/api.py:352 +msgid "No matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:356 +msgid "Multiple matching supplier parts found" +msgstr "" + +#: plugin/base/barcodes/api.py:380 +msgid "Matched supplier part" +msgstr "" + +#: plugin/base/barcodes/api.py:429 +msgid "Item has already been received" +msgstr "" + +#: plugin/base/barcodes/api.py:466 +msgid "No match for supplier barcode" +msgstr "" + +#: plugin/base/barcodes/api.py:509 +msgid "Multiple matching line items found" +msgstr "" + +#: plugin/base/barcodes/api.py:512 +msgid "No matching line item found" +msgstr "" + +#: plugin/base/barcodes/api.py:550 plugin/base/barcodes/api.py:557 +msgid "Barcode does not match an existing stock item" +msgstr "" + +#: plugin/base/barcodes/api.py:568 +msgid "Stock item does not match line item" +msgstr "" + +#: plugin/base/barcodes/api.py:592 templates/js/translated/build.js:2783 +#: templates/js/translated/sales_order.js:1953 +msgid "Insufficient stock available" +msgstr "" + +#: plugin/base/barcodes/api.py:601 +msgid "Stock item allocated to sales order" +msgstr "" + +#: plugin/base/barcodes/api.py:605 +msgid "Not enough information" +msgstr "" + +#: plugin/base/barcodes/mixins.py:172 plugin/base/barcodes/mixins.py:204 +msgid "Found multiple matching supplier parts for barcode" +msgstr "" + +#: plugin/base/barcodes/mixins.py:222 +#, python-brace-format +msgid "Found multiple purchase orders matching '{order}'" +msgstr "" + +#: plugin/base/barcodes/mixins.py:226 +#, python-brace-format +msgid "No matching purchase order for '{order}'" +msgstr "" + +#: plugin/base/barcodes/mixins.py:231 +msgid "Purchase order does not match supplier" +msgstr "" + +#: plugin/base/barcodes/mixins.py:467 +msgid "Failed to find pending line item for supplier part" +msgstr "" + +#: plugin/base/barcodes/mixins.py:498 +msgid "Further information required to receive line item" +msgstr "" + +#: plugin/base/barcodes/mixins.py:506 +msgid "Received purchase order line item" +msgstr "" + +#: plugin/base/barcodes/serializers.py:21 +msgid "Scanned barcode data" +msgstr "" + +#: plugin/base/barcodes/serializers.py:30 +msgid "Model name to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:35 +msgid "Primary key of model object to generate barcode for" +msgstr "" + +#: plugin/base/barcodes/serializers.py:105 +msgid "Purchase Order to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:111 +msgid "Purchase order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:129 +msgid "PurchaseOrder to receive items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:135 +msgid "Purchase order has not been placed" +msgstr "" + +#: plugin/base/barcodes/serializers.py:143 +msgid "Location to receive items into" +msgstr "" + +#: plugin/base/barcodes/serializers.py:149 +msgid "Cannot select a structural location" +msgstr "" + +#: plugin/base/barcodes/serializers.py:163 +msgid "Sales Order to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:169 +msgid "Sales order is not pending" +msgstr "" + +#: plugin/base/barcodes/serializers.py:177 +msgid "Sales order line item to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:184 +msgid "Sales order shipment to allocate items against" +msgstr "" + +#: plugin/base/barcodes/serializers.py:190 +msgid "Shipment has already been delivered" +msgstr "" + +#: plugin/base/barcodes/serializers.py:195 +msgid "Quantity to allocate" +msgstr "" + +#: plugin/base/label/label.py:39 templates/js/translated/label.js:148 +msgid "Label printing failed" +msgstr "" + +#: plugin/base/label/mixins.py:54 +msgid "Error rendering label to PDF" +msgstr "" + +#: plugin/base/label/mixins.py:68 +msgid "Error rendering label to HTML" +msgstr "" + +#: plugin/base/label/mixins.py:149 +msgid "No items provided to print" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:27 +msgid "InvenTree Barcodes" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:28 +msgid "Provides native support for barcodes" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:30 +#: plugin/builtin/integration/core_notifications.py:35 +#: plugin/builtin/integration/currency_exchange.py:21 +#: plugin/builtin/labels/inventree_label.py:22 +#: plugin/builtin/labels/inventree_machine.py:64 +#: plugin/builtin/labels/label_sheet.py:63 +#: 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 "" + +#: plugin/builtin/barcodes/inventree_barcode.py:34 +msgid "Internal Barcode Format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:35 +msgid "Select an internal barcode format" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:37 +msgid "JSON barcodes (human readable)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:38 +msgid "Short barcodes (space optimized)" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:43 +msgid "Short Barcode Prefix" +msgstr "" + +#: plugin/builtin/barcodes/inventree_barcode.py:45 +msgid "Customize the prefix used for short barcodes, may be useful for environments with multiple InvenTree instances" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:34 +msgid "InvenTree Notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:36 +msgid "Integrated outgoing notification methods" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:41 +#: plugin/builtin/integration/core_notifications.py:80 +msgid "Enable email notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:42 +#: plugin/builtin/integration/core_notifications.py:81 +msgid "Allow sending of emails for event notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:47 +msgid "Enable slack notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:49 +msgid "Allow sending of slack channel messages for event notifications" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:55 +msgid "Slack incoming webhook url" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:56 +msgid "URL that is used to send messages to a slack channel" +msgstr "" + +#: plugin/builtin/integration/core_notifications.py:166 +msgid "Open link" +msgstr "" + +#: plugin/builtin/integration/currency_exchange.py:22 +msgid "InvenTree Currency Exchange" +msgstr "" + +#: plugin/builtin/integration/currency_exchange.py:23 +msgid "Default currency exchange integration" +msgstr "" + +#: plugin/builtin/labels/inventree_label.py:19 +msgid "InvenTree PDF label printer" +msgstr "" + +#: plugin/builtin/labels/inventree_label.py:20 +msgid "Provides native support for printing PDF labels" +msgstr "" + +#: plugin/builtin/labels/inventree_label.py:28 +#: plugin/builtin/labels/label_sheet.py:69 +msgid "Debug mode" +msgstr "" + +#: plugin/builtin/labels/inventree_label.py:29 +#: plugin/builtin/labels/label_sheet.py:70 +msgid "Enable debug mode - returns raw HTML instead of PDF" +msgstr "" + +#: plugin/builtin/labels/inventree_machine.py:61 +msgid "InvenTree machine label printer" +msgstr "" + +#: plugin/builtin/labels/inventree_machine.py:62 +msgid "Provides support for printing using a machine" +msgstr "" + +#: plugin/builtin/labels/inventree_machine.py:149 +msgid "last used" +msgstr "" + +#: plugin/builtin/labels/inventree_machine.py:166 +msgid "Options" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:29 +msgid "Page size for the label sheet" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:34 +msgid "Skip Labels" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:35 +msgid "Skip this number of labels when printing label sheets" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:41 +msgid "Border" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:42 +msgid "Print a border around each label" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:47 report/models.py:315 +msgid "Landscape" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:48 +msgid "Print the label sheet in landscape mode" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:60 +msgid "InvenTree Label Sheet Printer" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:61 +msgid "Arrays multiple labels onto a single sheet" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:106 +msgid "Label is too large for page size" +msgstr "" + +#: plugin/builtin/labels/label_sheet.py:140 +msgid "No labels were generated" +msgstr "" + +#: plugin/builtin/suppliers/digikey.py:16 +msgid "Supplier Integration - DigiKey" +msgstr "" + +#: plugin/builtin/suppliers/digikey.py:17 +msgid "Provides support for scanning DigiKey barcodes" +msgstr "" + +#: plugin/builtin/suppliers/digikey.py:26 +msgid "The Supplier which acts as 'DigiKey'" +msgstr "" + +#: plugin/builtin/suppliers/lcsc.py:18 +msgid "Supplier Integration - LCSC" +msgstr "" + +#: plugin/builtin/suppliers/lcsc.py:19 +msgid "Provides support for scanning LCSC barcodes" +msgstr "" + +#: plugin/builtin/suppliers/lcsc.py:27 +msgid "The Supplier which acts as 'LCSC'" +msgstr "" + +#: plugin/builtin/suppliers/mouser.py:16 +msgid "Supplier Integration - Mouser" +msgstr "" + +#: plugin/builtin/suppliers/mouser.py:17 +msgid "Provides support for scanning Mouser barcodes" +msgstr "" + +#: plugin/builtin/suppliers/mouser.py:25 +msgid "The Supplier which acts as 'Mouser'" +msgstr "" + +#: plugin/builtin/suppliers/tme.py:18 +msgid "Supplier Integration - TME" +msgstr "" + +#: plugin/builtin/suppliers/tme.py:19 +msgid "Provides support for scanning TME barcodes" +msgstr "" + +#: plugin/builtin/suppliers/tme.py:27 +msgid "The Supplier which acts as 'TME'" +msgstr "" + +#: plugin/installer.py:199 plugin/installer.py:282 +msgid "Only staff users can administer plugins" +msgstr "" + +#: plugin/installer.py:202 +msgid "Plugin installation is disabled" +msgstr "" + +#: plugin/installer.py:246 +msgid "Installed plugin successfully" +msgstr "" + +#: plugin/installer.py:251 +#, python-brace-format +msgid "Installed plugin into {path}" +msgstr "" + +#: plugin/installer.py:273 +msgid "Plugin was not found in registry" +msgstr "" + +#: plugin/installer.py:276 +msgid "Plugin is not a packaged plugin" +msgstr "" + +#: plugin/installer.py:279 +msgid "Plugin package name not found" +msgstr "" + +#: plugin/installer.py:299 +msgid "Plugin uninstalling is disabled" +msgstr "" + +#: plugin/installer.py:303 +msgid "Plugin cannot be uninstalled as it is currently active" +msgstr "" + +#: plugin/installer.py:316 +msgid "Uninstalled plugin successfully" +msgstr "" + +#: plugin/models.py:36 +msgid "Plugin Configuration" +msgstr "" + +#: plugin/models.py:37 +msgid "Plugin Configurations" +msgstr "" + +#: plugin/models.py:44 +msgid "Key of plugin" +msgstr "" + +#: plugin/models.py:52 +msgid "PluginName of the plugin" +msgstr "" + +#: plugin/models.py:59 plugin/serializers.py:90 +msgid "Package Name" +msgstr "" + +#: plugin/models.py:61 +msgid "Name of the installed package, if the plugin was installed via PIP" +msgstr "" + +#: plugin/models.py:66 +msgid "Is the plugin active" +msgstr "" + +#: plugin/models.py:157 templates/js/translated/table_filters.js:377 +#: templates/js/translated/table_filters.js:525 +msgid "Installed" +msgstr "" + +#: plugin/models.py:166 +msgid "Sample plugin" +msgstr "" + +#: plugin/models.py:174 +msgid "Builtin Plugin" +msgstr "" + +#: plugin/models.py:182 +msgid "Package Plugin" +msgstr "" + +#: plugin/models.py:220 report/models.py:482 +#: templates/InvenTree/settings/plugin_settings.html:9 +#: templates/js/translated/plugin.js:51 +msgid "Plugin" +msgstr "" + +#: plugin/models.py:267 +msgid "Method" +msgstr "" + +#: plugin/plugin.py:271 +msgid "No author found" +msgstr "" + +#: plugin/registry.py:534 +#, python-brace-format +msgid "Plugin '{p}' is not compatible with the current InvenTree version {v}" +msgstr "" + +#: plugin/registry.py:537 +#, python-brace-format +msgid "Plugin requires at least version {v}" +msgstr "" + +#: plugin/registry.py:539 +#, python-brace-format +msgid "Plugin requires at most version {v}" +msgstr "" + +#: plugin/samples/integration/sample.py:52 +msgid "Enable PO" +msgstr "" + +#: plugin/samples/integration/sample.py:53 +msgid "Enable PO functionality in InvenTree interface" +msgstr "" + +#: plugin/samples/integration/sample.py:58 +msgid "API Key" +msgstr "" + +#: plugin/samples/integration/sample.py:59 +msgid "Key required for accessing external API" +msgstr "" + +#: plugin/samples/integration/sample.py:63 +msgid "Numerical" +msgstr "" + +#: plugin/samples/integration/sample.py:64 +msgid "A numerical setting" +msgstr "" + +#: plugin/samples/integration/sample.py:69 +msgid "Choice Setting" +msgstr "" + +#: plugin/samples/integration/sample.py:70 +msgid "A setting with multiple choices" +msgstr "" + +#: plugin/samples/integration/sample_currency_exchange.py:15 +msgid "Sample currency exchange plugin" +msgstr "" + +#: plugin/samples/integration/sample_currency_exchange.py:18 +msgid "InvenTree Contributors" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + +#: plugin/serializers.py:81 +msgid "Source URL" +msgstr "" + +#: plugin/serializers.py:83 +msgid "Source for the package - this can be a custom registry or a VCS path" +msgstr "" + +#: plugin/serializers.py:92 +msgid "Name for the Plugin Package - can also contain a version indicator" +msgstr "" + +#: plugin/serializers.py:99 +#: templates/InvenTree/settings/plugin_settings.html:42 +#: templates/js/translated/plugin.js:86 +msgid "Version" +msgstr "" + +#: plugin/serializers.py:101 +msgid "Version specifier for the plugin. Leave blank for latest version." +msgstr "" + +#: plugin/serializers.py:106 +msgid "Confirm plugin installation" +msgstr "" + +#: plugin/serializers.py:108 +msgid "This will install this plugin now into the current instance. The instance will go into maintenance." +msgstr "" + +#: plugin/serializers.py:121 +msgid "Installation not confirmed" +msgstr "" + +#: plugin/serializers.py:123 +msgid "Either packagename of URL must be provided" +msgstr "" + +#: plugin/serializers.py:159 +msgid "Full reload" +msgstr "" + +#: plugin/serializers.py:160 +msgid "Perform a full reload of the plugin registry" +msgstr "" + +#: plugin/serializers.py:166 +msgid "Force reload" +msgstr "" + +#: plugin/serializers.py:168 +msgid "Force a reload of the plugin registry, even if it is already loaded" +msgstr "" + +#: plugin/serializers.py:175 +msgid "Collect plugins" +msgstr "" + +#: plugin/serializers.py:176 +msgid "Collect plugins and add them to the registry" +msgstr "" + +#: plugin/serializers.py:203 +msgid "Activate Plugin" +msgstr "" + +#: plugin/serializers.py:204 +msgid "Activate this plugin" +msgstr "" + +#: plugin/serializers.py:224 +msgid "Delete configuration" +msgstr "" + +#: plugin/serializers.py:225 +msgid "Delete the plugin configuration from the database" +msgstr "" + +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + +#: report/api.py:88 +msgid "No valid objects provided to template" +msgstr "" + +#: report/api.py:103 report/models.py:446 report/serializers.py:99 +#: report/serializers.py:149 templates/js/translated/purchase_order.js:1817 +#: templates/js/translated/return_order.js:353 +#: templates/js/translated/sales_order.js:887 +#: templates/js/translated/sales_order.js:1047 +msgid "Items" +msgstr "" + +#: report/api.py:180 +msgid "Plugin not found" +msgstr "" + +#: report/api.py:182 +msgid "Plugin is not active" +msgstr "" + +#: report/api.py:184 +msgid "Plugin does not support label printing" +msgstr "" + +#: report/api.py:233 +msgid "Invalid label dimensions" +msgstr "" + +#: report/api.py:248 report/api.py:329 +msgid "No valid items provided to template" +msgstr "" + +#: report/api.py:283 +msgid "Error printing label" +msgstr "" + +#: report/api.py:358 +msgid "Report saved at time of printing" +msgstr "" + +#: report/api.py:384 report/api.py:420 +#, python-brace-format +msgid "Template file '{template}' is missing or does not exist" +msgstr "" + +#: report/helpers.py:43 +msgid "A4" +msgstr "" + +#: report/helpers.py:44 +msgid "A3" +msgstr "" + +#: report/helpers.py:45 +msgid "Legal" +msgstr "" + +#: report/helpers.py:46 +msgid "Letter" +msgstr "" + +#: report/models.py:118 +msgid "Template file with this name already exists" +msgstr "" + +#: report/models.py:150 +msgid "Template name" +msgstr "" + +#: report/models.py:156 +msgid "Template description" +msgstr "" + +#: report/models.py:162 +msgid "Revision number (auto-increments)" +msgstr "" + +#: report/models.py:168 +msgid "Attach to Model on Print" +msgstr "" + +#: report/models.py:170 +msgid "Save report output as an attachment against linked model instance when printing" +msgstr "" + +#: report/models.py:210 +msgid "Filename Pattern" +msgstr "" + +#: report/models.py:211 +msgid "Pattern for generating filenames" +msgstr "" + +#: report/models.py:216 +msgid "Template is enabled" +msgstr "" + +#: report/models.py:222 +msgid "Target model type for template" +msgstr "" + +#: report/models.py:242 +msgid "Filters" +msgstr "" + +#: report/models.py:243 +msgid "Template query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:302 report/models.py:369 +msgid "Template file" +msgstr "" + +#: report/models.py:310 +msgid "Page size for PDF reports" +msgstr "" + +#: report/models.py:316 +msgid "Render report in landscape orientation" +msgstr "" + +#: report/models.py:375 +msgid "Width [mm]" +msgstr "" + +#: report/models.py:376 +msgid "Label width, specified in mm" +msgstr "" + +#: report/models.py:382 +msgid "Height [mm]" +msgstr "" + +#: report/models.py:383 +msgid "Label height, specified in mm" +msgstr "" + +#: report/models.py:446 +msgid "Number of items to process" +msgstr "" + +#: report/models.py:452 +msgid "Report generation is complete" +msgstr "" + +#: report/models.py:456 templates/js/translated/build.js:2352 +msgid "Progress" +msgstr "" + +#: report/models.py:456 +msgid "Report generation progress" +msgstr "" + +#: report/models.py:464 +msgid "Report Template" +msgstr "" + +#: report/models.py:471 report/models.py:494 +msgid "Output File" +msgstr "" + +#: report/models.py:472 report/models.py:495 +msgid "Generated output file" +msgstr "" + +#: report/models.py:483 +msgid "Label output plugin" +msgstr "" + +#: report/models.py:487 +msgid "Label Template" +msgstr "" + +#: report/models.py:510 +msgid "Snippet" +msgstr "" + +#: report/models.py:511 +msgid "Report snippet file" +msgstr "" + +#: report/models.py:518 +msgid "Snippet file description" +msgstr "" + +#: report/models.py:536 +msgid "Asset" +msgstr "" + +#: report/models.py:537 +msgid "Report asset file" +msgstr "" + +#: report/models.py:544 +msgid "Asset file description" +msgstr "" + +#: report/serializers.py:92 +msgid "Select report template" +msgstr "" + +#: report/serializers.py:100 report/serializers.py:150 +msgid "List of item primary keys to include in the report" +msgstr "" + +#: report/serializers.py:133 +msgid "Select label template" +msgstr "" + +#: report/serializers.py:141 +msgid "Printing Plugin" +msgstr "" + +#: report/serializers.py:142 +msgid "Select plugin to use for label printing" +msgstr "" + +#: report/templates/label/part_label.html:31 +#: report/templates/label/stockitem_qr.html:21 +#: report/templates/label/stocklocation_qr.html:20 +#: templates/allauth_2fa/setup.html:18 +msgid "QR Code" +msgstr "" + +#: report/templates/label/part_label_code128.html:31 +#: report/templates/label/stocklocation_qr_and_text.html:31 +#: templates/qr_code.html:7 +msgid "QR code" +msgstr "" + +#: report/templates/report/inventree_bill_of_materials_report.html:133 +msgid "Materials needed" +msgstr "" + +#: report/templates/report/inventree_build_order_report.html:146 +msgid "Required For" +msgstr "" + +#: report/templates/report/inventree_purchase_order_report.html:15 +msgid "Supplier was deleted" +msgstr "" + +#: report/templates/report/inventree_purchase_order_report.html:30 +#: report/templates/report/inventree_sales_order_report.html:30 +#: templates/js/translated/order.js:341 templates/js/translated/pricing.js:527 +#: templates/js/translated/pricing.js:596 +#: templates/js/translated/pricing.js:834 +#: templates/js/translated/purchase_order.js:2185 +#: templates/js/translated/sales_order.js:1873 +msgid "Unit Price" +msgstr "" + +#: report/templates/report/inventree_purchase_order_report.html:55 +#: report/templates/report/inventree_return_order_report.html:48 +#: report/templates/report/inventree_sales_order_report.html:55 +msgid "Extra Line Items" +msgstr "" + +#: report/templates/report/inventree_purchase_order_report.html:72 +#: report/templates/report/inventree_sales_order_report.html:72 +#: templates/js/translated/purchase_order.js:2087 +#: templates/js/translated/sales_order.js:1842 +#: templates/test_statistics_table.html:8 +#: templates/test_statistics_table.html:19 +msgid "Total" +msgstr "" + +#: report/templates/report/inventree_stock_location_report.html:97 +msgid "Stock location items" +msgstr "" + +#: report/templates/report/inventree_test_report.html:21 +msgid "Stock Item Test Report" +msgstr "" + +#: report/templates/report/inventree_test_report.html:97 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report.html:102 +#: templates/js/translated/stock.js:1580 +msgid "Test" +msgstr "" + +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 +msgid "Result" +msgstr "" + +#: report/templates/report/inventree_test_report.html:129 +msgid "Pass" +msgstr "" + +#: report/templates/report/inventree_test_report.html:131 +msgid "Fail" +msgstr "" + +#: report/templates/report/inventree_test_report.html:138 +msgid "No result (required)" +msgstr "" + +#: report/templates/report/inventree_test_report.html:140 +msgid "No result" +msgstr "" + +#: report/templates/report/inventree_test_report.html:153 +#: stock/serializers.py:606 stock/templates/stock/stock_sidebar.html:16 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report.html:167 stock/admin.py:162 +#: templates/js/translated/stock.js:706 templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:3195 +msgid "Serial" +msgstr "" + +#: report/templatetags/report.py:98 +msgid "Asset file does not exist" +msgstr "" + +#: report/templatetags/report.py:154 report/templatetags/report.py:233 +msgid "Image file not found" +msgstr "" + +#: report/templatetags/report.py:258 +msgid "part_image tag requires a Part instance" +msgstr "" + +#: report/templatetags/report.py:299 +msgid "company_image tag requires a Company instance" +msgstr "" + +#: stock/admin.py:51 stock/admin.py:172 +msgid "Location ID" +msgstr "" + +#: stock/admin.py:63 stock/templates/stock/location.html:128 +#: stock/templates/stock/location.html:134 +msgid "Location Path" +msgstr "" + +#: stock/admin.py:149 +msgid "Stock Item ID" +msgstr "" + +#: stock/admin.py:168 +msgid "Status Code" +msgstr "" + +#: stock/admin.py:180 +msgid "Supplier Part ID" +msgstr "" + +#: stock/admin.py:185 +msgid "Supplier Part SKU" +msgstr "" + +#: stock/admin.py:190 +msgid "Supplier ID" +msgstr "" + +#: stock/admin.py:201 +msgid "Customer ID" +msgstr "" + +#: stock/admin.py:206 stock/models.py:829 +#: stock/templates/stock/item_base.html:350 +msgid "Installed In" +msgstr "" + +#: stock/admin.py:211 +msgid "Build ID" +msgstr "" + +#: stock/admin.py:221 +msgid "Sales Order ID" +msgstr "" + +#: stock/admin.py:226 +msgid "Purchase Order ID" +msgstr "" + +#: stock/admin.py:241 +msgid "Review Needed" +msgstr "" + +#: stock/admin.py:246 +msgid "Delete on Deplete" +msgstr "" + +#: stock/admin.py:261 stock/models.py:923 +#: stock/templates/stock/item_base.html:429 +#: templates/js/translated/stock.js:2316 users/models.py:124 +msgid "Expiry Date" +msgstr "" + +#: stock/api.py:310 +msgid "Filter by location depth" +msgstr "" + +#: stock/api.py:330 +msgid "Filter by top-level locations" +msgstr "" + +#: stock/api.py:345 +msgid "Include sub-locations in filtered results" +msgstr "" + +#: stock/api.py:366 stock/serializers.py:1193 +msgid "Parent Location" +msgstr "" + +#: stock/api.py:367 +msgid "Filter by parent location" +msgstr "" + +#: stock/api.py:614 templates/js/translated/table_filters.js:434 +msgid "External Location" +msgstr "" + +#: stock/api.py:802 +msgid "Part Tree" +msgstr "" + +#: stock/api.py:832 +msgid "Expiry date before" +msgstr "" + +#: stock/api.py:836 +msgid "Expiry date after" +msgstr "" + +#: stock/api.py:839 stock/serializers.py:611 +#: stock/templates/stock/item_base.html:435 +#: templates/js/translated/table_filters.js:448 +msgid "Stale" +msgstr "" + +#: stock/api.py:926 +msgid "Quantity is required" +msgstr "" + +#: stock/api.py:932 +msgid "Valid part must be supplied" +msgstr "" + +#: stock/api.py:963 +msgid "The given supplier part does not exist" +msgstr "" + +#: stock/api.py:973 +msgid "The supplier part has a pack size defined, but flag use_pack_size not set" +msgstr "" + +#: stock/api.py:998 +msgid "Serial numbers cannot be supplied for a non-trackable part" +msgstr "" + +#: stock/models.py:69 +msgid "Stock Location type" +msgstr "" + +#: stock/models.py:70 +msgid "Stock Location types" +msgstr "" + +#: stock/models.py:96 +msgid "Default icon for all locations that have no icon set (optional)" +msgstr "" + +#: stock/models.py:136 stock/models.py:811 +#: stock/templates/stock/location.html:17 +#: stock/templates/stock/stock_app_base.html:8 +msgid "Stock Location" +msgstr "" + +#: stock/models.py:137 stock/templates/stock/location.html:183 +#: templates/InvenTree/search.html:166 templates/js/translated/search.js:178 +#: users/models.py:205 +msgid "Stock Locations" +msgstr "" + +#: stock/models.py:185 stock/models.py:972 +#: stock/templates/stock/item_base.html:243 +msgid "Owner" +msgstr "" + +#: stock/models.py:186 stock/models.py:973 +msgid "Select Owner" +msgstr "" + +#: stock/models.py:194 +msgid "Stock items may not be directly located into a structural stock locations, but may be located to child locations." +msgstr "" + +#: stock/models.py:201 templates/js/translated/stock.js:2866 +#: templates/js/translated/table_filters.js:250 +msgid "External" +msgstr "" + +#: stock/models.py:202 +msgid "This is an external stock location" +msgstr "" + +#: stock/models.py:208 templates/js/translated/stock.js:2875 +#: templates/js/translated/table_filters.js:253 +msgid "Location type" +msgstr "" + +#: stock/models.py:212 +msgid "Stock location type of this location" +msgstr "" + +#: stock/models.py:284 +msgid "You cannot make this stock location structural because some stock items are already located into it!" +msgstr "" + +#: stock/models.py:668 +msgid "Stock items cannot be located into structural stock locations!" +msgstr "" + +#: stock/models.py:695 stock/serializers.py:487 +msgid "Stock item cannot be created for virtual parts" +msgstr "" + +#: stock/models.py:712 +#, python-brace-format +msgid "Part type ('{self.supplier_part.part}') must be {self.part}" +msgstr "" + +#: stock/models.py:722 stock/models.py:735 +msgid "Quantity must be 1 for item with a serial number" +msgstr "" + +#: stock/models.py:725 +msgid "Serial number cannot be set if quantity greater than 1" +msgstr "" + +#: stock/models.py:747 +msgid "Item cannot belong to itself" +msgstr "" + +#: stock/models.py:752 +msgid "Item must have a build reference if is_building=True" +msgstr "" + +#: stock/models.py:765 +msgid "Build reference does not point to the same part object" +msgstr "" + +#: stock/models.py:781 +msgid "Parent Stock Item" +msgstr "" + +#: stock/models.py:793 +msgid "Base part" +msgstr "" + +#: stock/models.py:803 +msgid "Select a matching supplier part for this stock item" +msgstr "" + +#: stock/models.py:815 +msgid "Where is this stock item located?" +msgstr "" + +#: stock/models.py:823 stock/serializers.py:1587 +msgid "Packaging this stock item is stored in" +msgstr "" + +#: stock/models.py:834 +msgid "Is this item installed in another item?" +msgstr "" + +#: stock/models.py:853 +msgid "Serial number for this item" +msgstr "" + +#: stock/models.py:867 stock/serializers.py:1570 +msgid "Batch code for this stock item" +msgstr "" + +#: stock/models.py:872 +msgid "Stock Quantity" +msgstr "" + +#: stock/models.py:882 +msgid "Source Build" +msgstr "" + +#: stock/models.py:885 +msgid "Build for this stock item" +msgstr "" + +#: stock/models.py:892 stock/templates/stock/item_base.html:359 +msgid "Consumed By" +msgstr "" + +#: stock/models.py:895 +msgid "Build order which consumed this stock item" +msgstr "" + +#: stock/models.py:904 +msgid "Source Purchase Order" +msgstr "" + +#: stock/models.py:908 +msgid "Purchase order for this stock item" +msgstr "" + +#: stock/models.py:914 +msgid "Destination Sales Order" +msgstr "" + +#: stock/models.py:925 +msgid "Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" + +#: stock/models.py:943 +msgid "Delete on deplete" +msgstr "" + +#: stock/models.py:944 +msgid "Delete this Stock Item when stock is depleted" +msgstr "" + +#: stock/models.py:964 +msgid "Single unit purchase price at time of purchase" +msgstr "" + +#: stock/models.py:995 +msgid "Converted to part" +msgstr "" + +#: stock/models.py:1506 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:1512 +msgid "Quantity must be integer" +msgstr "" + +#: stock/models.py:1520 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({self.quantity})" +msgstr "" + +#: stock/models.py:1526 +msgid "Serial numbers must be a list of integers" +msgstr "" + +#: stock/models.py:1531 +msgid "Quantity does not match serial numbers" +msgstr "" + +#: stock/models.py:1539 stock/serializers.py:733 +msgid "Serial numbers already exist" +msgstr "" + +#: stock/models.py:1636 stock/models.py:2436 +msgid "Test template does not exist" +msgstr "" + +#: stock/models.py:1654 +msgid "Stock item has been assigned to a sales order" +msgstr "" + +#: stock/models.py:1658 +msgid "Stock item is installed in another item" +msgstr "" + +#: stock/models.py:1661 +msgid "Stock item contains other items" +msgstr "" + +#: stock/models.py:1664 +msgid "Stock item has been assigned to a customer" +msgstr "" + +#: stock/models.py:1667 +msgid "Stock item is currently in production" +msgstr "" + +#: stock/models.py:1670 +msgid "Serialized stock cannot be merged" +msgstr "" + +#: stock/models.py:1677 stock/serializers.py:1476 +msgid "Duplicate stock items" +msgstr "" + +#: stock/models.py:1681 +msgid "Stock items must refer to the same part" +msgstr "" + +#: stock/models.py:1689 +msgid "Stock items must refer to the same supplier part" +msgstr "" + +#: stock/models.py:1694 +msgid "Stock status codes must match" +msgstr "" + +#: stock/models.py:1955 +msgid "StockItem cannot be moved as it is not in stock" +msgstr "" + +#: stock/models.py:2335 +msgid "Stock Item Tracking" +msgstr "" + +#: stock/models.py:2368 +msgid "Entry notes" +msgstr "" + +#: stock/models.py:2408 +msgid "Stock Item Test Result" +msgstr "" + +#: stock/models.py:2439 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:2443 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:2448 +msgid "Invalid value for this test" +msgstr "" + +#: stock/models.py:2533 +msgid "Test result" +msgstr "" + +#: stock/models.py:2540 +msgid "Test output value" +msgstr "" + +#: stock/models.py:2548 stock/serializers.py:245 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:2552 +msgid "Test notes" +msgstr "" + +#: stock/models.py:2560 templates/js/translated/stock.js:1633 +msgid "Test station" +msgstr "" + +#: stock/models.py:2561 +msgid "The identifier of the test station where the test was performed" +msgstr "" + +#: stock/models.py:2567 +msgid "Started" +msgstr "" + +#: stock/models.py:2568 +msgid "The timestamp of the test start" +msgstr "" + +#: stock/models.py:2574 +msgid "Finished" +msgstr "" + +#: stock/models.py:2575 +msgid "The timestamp of the test finish" +msgstr "" + +#: stock/serializers.py:77 +msgid "Generated batch code" +msgstr "" + +#: stock/serializers.py:86 +msgid "Select build order" +msgstr "" + +#: stock/serializers.py:95 +msgid "Select stock item to generate batch code for" +msgstr "" + +#: stock/serializers.py:104 +msgid "Select location to generate batch code for" +msgstr "" + +#: stock/serializers.py:113 +msgid "Select part to generate batch code for" +msgstr "" + +#: stock/serializers.py:122 +msgid "Select purchase order" +msgstr "" + +#: stock/serializers.py:129 +msgid "Enter quantity for batch code" +msgstr "" + +#: stock/serializers.py:152 +msgid "Generated serial number" +msgstr "" + +#: stock/serializers.py:161 +msgid "Select part to generate serial number for" +msgstr "" + +#: stock/serializers.py:169 +msgid "Quantity of serial numbers to generate" +msgstr "" + +#: stock/serializers.py:234 +msgid "Test template for this result" +msgstr "" + +#: stock/serializers.py:258 +msgid "Template ID or test name must be provided" +msgstr "" + +#: stock/serializers.py:290 +msgid "The test finished time cannot be earlier than the test started time" +msgstr "" + +#: stock/serializers.py:327 +msgid "Serial number is too large" +msgstr "" + +#: stock/serializers.py:459 stock/templates/stock/item_base.html:189 +msgid "Parent Item" +msgstr "" + +#: stock/serializers.py:460 +msgid "Parent stock item" +msgstr "" + +#: stock/serializers.py:479 +msgid "Use pack size when adding: the quantity defined is the number of packs" +msgstr "" + +#: stock/serializers.py:603 stock/templates/stock/item_base.html:433 +#: templates/js/translated/table_filters.js:442 users/models.py:174 +msgid "Expired" +msgstr "" + +#: stock/serializers.py:609 stock/templates/stock/stock_sidebar.html:20 +msgid "Child Items" +msgstr "" + +#: stock/serializers.py:613 +msgid "Tracking Items" +msgstr "" + +#: stock/serializers.py:619 +msgid "Purchase price of this stock item, per unit or pack" +msgstr "" + +#: stock/serializers.py:638 +msgid "Minimum Pricing" +msgstr "" + +#: stock/serializers.py:644 +msgid "Maximum Pricing" +msgstr "" + +#: stock/serializers.py:668 +msgid "Enter number of stock items to serialize" +msgstr "" + +#: stock/serializers.py:681 +#, python-brace-format +msgid "Quantity must not exceed available stock quantity ({q})" +msgstr "" + +#: stock/serializers.py:688 +msgid "Enter serial numbers for new items" +msgstr "" + +#: stock/serializers.py:699 stock/serializers.py:1433 stock/serializers.py:1689 +msgid "Destination stock location" +msgstr "" + +#: stock/serializers.py:706 +msgid "Optional note field" +msgstr "" + +#: stock/serializers.py:716 +msgid "Serial numbers cannot be assigned to this part" +msgstr "" + +#: stock/serializers.py:771 +msgid "Select stock item to install" +msgstr "" + +#: stock/serializers.py:778 +msgid "Quantity to Install" +msgstr "" + +#: stock/serializers.py:779 +msgid "Enter the quantity of items to install" +msgstr "" + +#: stock/serializers.py:784 stock/serializers.py:864 stock/serializers.py:990 +#: stock/serializers.py:1040 +msgid "Add transaction note (optional)" +msgstr "" + +#: stock/serializers.py:792 +msgid "Quantity to install must be at least 1" +msgstr "" + +#: stock/serializers.py:800 +msgid "Stock item is unavailable" +msgstr "" + +#: stock/serializers.py:811 +msgid "Selected part is not in the Bill of Materials" +msgstr "" + +#: stock/serializers.py:824 +msgid "Quantity to install must not exceed available quantity" +msgstr "" + +#: stock/serializers.py:859 +msgid "Destination location for uninstalled item" +msgstr "" + +#: stock/serializers.py:910 +msgid "Unsupported statistic type: " +msgstr "" + +#: stock/serializers.py:924 +msgid "Select part to convert stock item into" +msgstr "" + +#: stock/serializers.py:937 +msgid "Selected part is not a valid option for conversion" +msgstr "" + +#: stock/serializers.py:954 +msgid "Cannot convert stock item with assigned SupplierPart" +msgstr "" + +#: stock/serializers.py:985 +msgid "Destination location for returned item" +msgstr "" + +#: stock/serializers.py:1022 +msgid "Select stock items to change status" +msgstr "" + +#: stock/serializers.py:1028 +msgid "No stock items selected" +msgstr "" + +#: stock/serializers.py:1124 stock/serializers.py:1201 +#: stock/templates/stock/location.html:162 +#: stock/templates/stock/location.html:219 +#: stock/templates/stock/location_sidebar.html:5 +msgid "Sublocations" +msgstr "" + +#: stock/serializers.py:1194 templates/js/translated/stock.js:160 +msgid "Parent stock location" +msgstr "" + +#: stock/serializers.py:1305 +msgid "Part must be salable" +msgstr "" + +#: stock/serializers.py:1309 +msgid "Item is allocated to a sales order" +msgstr "" + +#: stock/serializers.py:1313 +msgid "Item is allocated to a build order" +msgstr "" + +#: stock/serializers.py:1337 +msgid "Customer to assign stock items" +msgstr "" + +#: stock/serializers.py:1343 +msgid "Selected company is not a customer" +msgstr "" + +#: stock/serializers.py:1351 +msgid "Stock assignment notes" +msgstr "" + +#: stock/serializers.py:1361 stock/serializers.py:1615 +msgid "A list of stock items must be provided" +msgstr "" + +#: stock/serializers.py:1440 +msgid "Stock merging notes" +msgstr "" + +#: stock/serializers.py:1445 +msgid "Allow mismatched suppliers" +msgstr "" + +#: stock/serializers.py:1446 +msgid "Allow stock items with different supplier parts to be merged" +msgstr "" + +#: stock/serializers.py:1451 +msgid "Allow mismatched status" +msgstr "" + +#: stock/serializers.py:1452 +msgid "Allow stock items with different status codes to be merged" +msgstr "" + +#: stock/serializers.py:1462 +msgid "At least two stock items must be provided" +msgstr "" + +#: stock/serializers.py:1529 +msgid "No Change" +msgstr "" + +#: stock/serializers.py:1558 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:1577 +msgid "Stock item status code" +msgstr "" + +#: stock/serializers.py:1605 +msgid "Stock transaction notes" +msgstr "" + +#: stock/status_codes.py:11 +msgid "OK" +msgstr "" + +#: stock/status_codes.py:12 +msgid "Attention needed" +msgstr "" + +#: stock/status_codes.py:13 +msgid "Damaged" +msgstr "" + +#: stock/status_codes.py:14 +msgid "Destroyed" +msgstr "" + +#: stock/status_codes.py:15 +msgid "Rejected" +msgstr "" + +#: stock/status_codes.py:19 +msgid "Quarantined" +msgstr "" + +#: stock/status_codes.py:44 +msgid "Legacy stock tracking entry" +msgstr "" + +#: stock/status_codes.py:46 templates/js/translated/stock.js:550 +msgid "Stock item created" +msgstr "" + +#: stock/status_codes.py:49 +msgid "Edited stock item" +msgstr "" + +#: stock/status_codes.py:50 +msgid "Assigned serial number" +msgstr "" + +#: stock/status_codes.py:53 +msgid "Stock counted" +msgstr "" + +#: stock/status_codes.py:54 +msgid "Stock manually added" +msgstr "" + +#: stock/status_codes.py:55 +msgid "Stock manually removed" +msgstr "" + +#: stock/status_codes.py:58 +msgid "Location changed" +msgstr "" + +#: stock/status_codes.py:59 +msgid "Stock updated" +msgstr "" + +#: stock/status_codes.py:62 +msgid "Installed into assembly" +msgstr "" + +#: stock/status_codes.py:63 +msgid "Removed from assembly" +msgstr "" + +#: stock/status_codes.py:65 +msgid "Installed component item" +msgstr "" + +#: stock/status_codes.py:66 +msgid "Removed component item" +msgstr "" + +#: stock/status_codes.py:69 +msgid "Split from parent item" +msgstr "" + +#: stock/status_codes.py:70 +msgid "Split child item" +msgstr "" + +#: stock/status_codes.py:73 templates/js/translated/stock.js:1944 +msgid "Merged stock items" +msgstr "" + +#: stock/status_codes.py:76 +msgid "Converted to variant" +msgstr "" + +#: stock/status_codes.py:79 +msgid "Build order output created" +msgstr "" + +#: stock/status_codes.py:80 +msgid "Build order output completed" +msgstr "" + +#: stock/status_codes.py:81 +msgid "Build order output rejected" +msgstr "" + +#: stock/status_codes.py:82 templates/js/translated/stock.js:1849 +msgid "Consumed by build order" +msgstr "" + +#: stock/status_codes.py:85 +msgid "Shipped against Sales Order" +msgstr "" + +#: stock/status_codes.py:88 +msgid "Received against Purchase Order" +msgstr "" + +#: stock/status_codes.py:91 +msgid "Returned against Return Order" +msgstr "" + +#: stock/status_codes.py:94 templates/js/translated/table_filters.js:382 +msgid "Sent to customer" +msgstr "" + +#: stock/status_codes.py:95 +msgid "Returned from customer" +msgstr "" + +#: stock/templates/stock/item.html:17 +msgid "Stock Tracking Information" +msgstr "" + +#: stock/templates/stock/item.html:63 +msgid "Child Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:72 +msgid "This stock item does not have any child items" +msgstr "" + +#: stock/templates/stock/item.html:81 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item.html:85 +msgid "Test Report" +msgstr "" + +#: stock/templates/stock/item.html:89 stock/templates/stock/item.html:276 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item.html:93 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item.html:125 +msgid "Stock Item Notes" +msgstr "" + +#: stock/templates/stock/item.html:140 +msgid "Installed Stock Items" +msgstr "" + +#: stock/templates/stock/item.html:145 templates/js/translated/stock.js:3355 +msgid "Install Stock Item" +msgstr "" + +#: stock/templates/stock/item.html:264 +msgid "Delete all test results for this stock item" +msgstr "" + +#: stock/templates/stock/item.html:294 templates/js/translated/stock.js:1786 +msgid "Add Test Result" +msgstr "" + +#: stock/templates/stock/item_base.html:33 +msgid "Locate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:51 +msgid "Scan to Location" +msgstr "" + +#: stock/templates/stock/item_base.html:58 +#: stock/templates/stock/location.html:67 +#: templates/js/translated/filters.js:434 +msgid "Printing actions" +msgstr "" + +#: stock/templates/stock/item_base.html:63 templates/js/translated/report.js:49 +msgid "Print Report" +msgstr "" + +#: stock/templates/stock/item_base.html:71 +msgid "Stock adjustment actions" +msgstr "" + +#: stock/templates/stock/item_base.html:75 +#: stock/templates/stock/location.html:87 templates/js/translated/stock.js:1909 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:77 +#: templates/js/translated/stock.js:1891 +msgid "Add stock" +msgstr "" + +#: stock/templates/stock/item_base.html:78 +#: templates/js/translated/stock.js:1900 +msgid "Remove stock" +msgstr "" + +#: stock/templates/stock/item_base.html:81 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:84 +#: stock/templates/stock/location.html:93 templates/js/translated/stock.js:1918 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:87 +#: templates/js/translated/stock.js:1973 +msgid "Assign to customer" +msgstr "" + +#: stock/templates/stock/item_base.html:90 +msgid "Return to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:93 +msgid "Uninstall stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:93 +msgid "Uninstall" +msgstr "" + +#: stock/templates/stock/item_base.html:97 +msgid "Install stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:97 +msgid "Install" +msgstr "" + +#: stock/templates/stock/item_base.html:111 +msgid "Convert to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:114 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:116 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:119 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:165 templates/InvenTree/search.html:139 +#: templates/js/translated/build.js:2298 templates/navbar.html:38 +msgid "Build" +msgstr "" + +#: stock/templates/stock/item_base.html:207 +msgid "No manufacturer set" +msgstr "" + +#: stock/templates/stock/item_base.html:247 +msgid "You are not in the list of owners of this item. This stock item cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:248 +#: stock/templates/stock/location.html:146 +msgid "Read only" +msgstr "" + +#: stock/templates/stock/item_base.html:261 +msgid "This stock item is unavailable" +msgstr "" + +#: stock/templates/stock/item_base.html:267 +msgid "This stock item is in production and cannot be edited." +msgstr "" + +#: stock/templates/stock/item_base.html:268 +msgid "Edit the stock item from the build view." +msgstr "" + +#: stock/templates/stock/item_base.html:283 +msgid "This stock item is allocated to Sales Order" +msgstr "" + +#: stock/templates/stock/item_base.html:291 +msgid "This stock item is allocated to Build Order" +msgstr "" + +#: stock/templates/stock/item_base.html:307 +msgid "This stock item is serialized. It has a unique serial number and the quantity cannot be adjusted" +msgstr "" + +#: stock/templates/stock/item_base.html:313 +msgid "previous page" +msgstr "" + +#: stock/templates/stock/item_base.html:313 +msgid "Navigate to previous serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:322 +msgid "next page" +msgstr "" + +#: stock/templates/stock/item_base.html:322 +msgid "Navigate to next serial number" +msgstr "" + +#: stock/templates/stock/item_base.html:394 +#: templates/js/translated/build.js:2555 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:409 +msgid "Tests" +msgstr "" + +#: stock/templates/stock/item_base.html:415 +msgid "This stock item has not passed all required tests" +msgstr "" + +#: stock/templates/stock/item_base.html:433 +#, python-format +msgid "This StockItem expired on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:435 +#, python-format +msgid "This StockItem expires on %(item.expiry_date)s" +msgstr "" + +#: stock/templates/stock/item_base.html:451 +msgid "No stocktake performed" +msgstr "" + +#: stock/templates/stock/item_base.html:500 +#: templates/js/translated/stock.js:2038 +msgid "stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:523 +msgid "Edit Stock Status" +msgstr "" + +#: stock/templates/stock/item_base.html:532 +msgid "Stock Item QR Code" +msgstr "" + +#: stock/templates/stock/item_base.html:543 +msgid "Link Barcode to Stock Item" +msgstr "" + +#: stock/templates/stock/item_base.html:607 +msgid "Select one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/item_base.html:610 +msgid "Warning" +msgstr "" + +#: stock/templates/stock/item_base.html:611 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/item_base.html:619 +msgid "Convert Stock Item" +msgstr "" + +#: stock/templates/stock/item_base.html:652 +msgid "Return to Stock" +msgstr "" + +#: stock/templates/stock/item_serialize.html:5 +msgid "Create serialized items from this stock item." +msgstr "" + +#: stock/templates/stock/item_serialize.html:7 +msgid "Select quantity to serialize, and unique serial numbers." +msgstr "" + +#: stock/templates/stock/location.html:35 +msgid "Perform stocktake for this stock location" +msgstr "" + +#: stock/templates/stock/location.html:42 +msgid "Locate stock location" +msgstr "" + +#: stock/templates/stock/location.html:60 +msgid "Scan stock items into this location" +msgstr "" + +#: stock/templates/stock/location.html:60 +msgid "Scan In Stock Items" +msgstr "" + +#: stock/templates/stock/location.html:61 +msgid "Scan stock container into this location" +msgstr "" + +#: stock/templates/stock/location.html:61 +msgid "Scan In Container" +msgstr "" + +#: stock/templates/stock/location.html:72 +msgid "Print Location Report" +msgstr "" + +#: stock/templates/stock/location.html:101 +msgid "Location actions" +msgstr "" + +#: stock/templates/stock/location.html:103 +msgid "Edit location" +msgstr "" + +#: stock/templates/stock/location.html:105 +msgid "Delete location" +msgstr "" + +#: stock/templates/stock/location.html:135 +msgid "Top level stock location" +msgstr "" + +#: stock/templates/stock/location.html:141 +msgid "Location Owner" +msgstr "" + +#: stock/templates/stock/location.html:145 +msgid "You are not in the list of owners of this location. This stock location cannot be edited." +msgstr "" + +#: stock/templates/stock/location.html:173 +msgid "Location Type" +msgstr "" + +#: stock/templates/stock/location.html:223 +msgid "Create new stock location" +msgstr "" + +#: stock/templates/stock/location.html:224 +msgid "New Location" +msgstr "" + +#: stock/templates/stock/location.html:298 +#: templates/js/translated/stock.js:2658 +msgid "stock location" +msgstr "" + +#: stock/templates/stock/location.html:320 +msgid "Scanned stock container into this location" +msgstr "" + +#: stock/templates/stock/location.html:393 +msgid "Stock Location QR Code" +msgstr "" + +#: stock/templates/stock/location.html:404 +msgid "Link Barcode to Stock Location" +msgstr "" + +#: stock/templates/stock/stock_app_base.html:16 +msgid "Loading..." +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +msgstr "" + +#: stock/templates/stock/stock_sidebar.html:8 +msgid "Allocations" +msgstr "" + +#: templates/403.html:6 templates/403.html:12 templates/403_csrf.html:7 +msgid "Permission Denied" +msgstr "" + +#: templates/403.html:15 +msgid "You do not have permission to view this page." +msgstr "" + +#: templates/403_csrf.html:11 +msgid "Authentication Failure" +msgstr "" + +#: templates/403_csrf.html:14 +msgid "You have been logged out from InvenTree." +msgstr "" + +#: templates/403_csrf.html:19 templates/InvenTree/settings/sidebar.html:29 +#: templates/navbar.html:150 +msgid "Login" +msgstr "" + +#: templates/404.html:6 templates/404.html:12 +msgid "Page Not Found" +msgstr "" + +#: templates/404.html:15 +msgid "The requested page does not exist" +msgstr "" + +#: templates/500.html:6 templates/500.html:12 +msgid "Internal Server Error" +msgstr "" + +#: templates/500.html:15 +#, python-format +msgid "The %(inventree_title)s server raised an internal error" +msgstr "" + +#: templates/500.html:16 +msgid "Refer to the error log in the admin interface for further details" +msgstr "" + +#: templates/503.html:11 templates/503.html:33 +msgid "Site is in Maintenance" +msgstr "" + +#: templates/503.html:39 +msgid "The site is currently in maintenance and should be up again soon!" +msgstr "" + +#: templates/InvenTree/index.html:7 +msgid "Index" +msgstr "" + +#: templates/InvenTree/index.html:39 +msgid "Subscribed Parts" +msgstr "" + +#: templates/InvenTree/index.html:52 +msgid "Subscribed Categories" +msgstr "" + +#: templates/InvenTree/index.html:62 +msgid "Latest Parts" +msgstr "" + +#: templates/InvenTree/index.html:77 +msgid "BOM Waiting Validation" +msgstr "" + +#: templates/InvenTree/index.html:106 +msgid "Recently Updated" +msgstr "" + +#: templates/InvenTree/index.html:134 +msgid "Depleted Stock" +msgstr "" + +#: templates/InvenTree/index.html:148 +msgid "Required for Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:156 +msgid "Expired Stock" +msgstr "" + +#: templates/InvenTree/index.html:172 +msgid "Stale Stock" +msgstr "" + +#: templates/InvenTree/index.html:199 +msgid "Build Orders In Progress" +msgstr "" + +#: templates/InvenTree/index.html:210 +msgid "Overdue Build Orders" +msgstr "" + +#: templates/InvenTree/index.html:230 +msgid "Outstanding Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:241 +msgid "Overdue Purchase Orders" +msgstr "" + +#: templates/InvenTree/index.html:262 +msgid "Outstanding Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:273 +msgid "Overdue Sales Orders" +msgstr "" + +#: templates/InvenTree/index.html:299 +msgid "InvenTree News" +msgstr "" + +#: templates/InvenTree/index.html:301 +msgid "Current News" +msgstr "" + +#: templates/InvenTree/notifications/history.html:9 +msgid "Notification History" +msgstr "" + +#: templates/InvenTree/notifications/history.html:13 +#: templates/InvenTree/notifications/history.html:14 +#: templates/InvenTree/notifications/notifications.html:75 +msgid "Delete Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:9 +msgid "Pending Notifications" +msgstr "" + +#: templates/InvenTree/notifications/inbox.html:13 +#: templates/InvenTree/notifications/inbox.html:14 +msgid "Mark all as read" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:10 +#: templates/InvenTree/notifications/sidebar.html:5 +#: templates/InvenTree/settings/sidebar.html:17 +#: templates/InvenTree/settings/sidebar.html:37 templates/notifications.html:5 +msgid "Notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:38 +msgid "No unread notifications found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:58 +msgid "No notification history found" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:65 +msgid "Delete all read notifications" +msgstr "" + +#: templates/InvenTree/notifications/notifications.html:89 +#: templates/js/translated/notification.js:85 +msgid "Delete Notification" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:8 +msgid "Inbox" +msgstr "" + +#: templates/InvenTree/notifications/sidebar.html:10 +msgid "History" +msgstr "" + +#: templates/InvenTree/search.html:8 +msgid "Search Results" +msgstr "" + +#: templates/InvenTree/settings/barcode.html:8 +msgid "Barcode Settings" +msgstr "" + +#: templates/InvenTree/settings/build.html:8 +msgid "Build Order Settings" +msgstr "" + +#: templates/InvenTree/settings/category.html:7 +msgid "Category Settings" +msgstr "" + +#: templates/InvenTree/settings/global.html:8 +msgid "Server Settings" +msgstr "" + +#: templates/InvenTree/settings/label.html:8 +#: templates/InvenTree/settings/user_labels.html:9 +msgid "Label Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:8 +msgid "Login Settings" +msgstr "" + +#: templates/InvenTree/settings/login.html:15 +msgid "Outgoing email has not been configured. Some login and sign-up features may not work correctly!" +msgstr "" + +#: templates/InvenTree/settings/login.html:27 templates/account/signup.html:5 +#: templates/socialaccount/signup.html:5 +msgid "Signup" +msgstr "" + +#: templates/InvenTree/settings/login.html:36 +msgid "Single Sign On" +msgstr "" + +#: templates/InvenTree/settings/mixins/settings.html:5 +#: templates/InvenTree/settings/settings.html:12 templates/navbar.html:147 +msgid "Settings" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:5 +msgid "URLs" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:8 +#, python-format +msgid "The Base-URL for this plugin is %(base)s." +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:14 +msgid "URL" +msgstr "" + +#: templates/InvenTree/settings/mixins/urls.html:23 +msgid "Open in new tab" +msgstr "" + +#: templates/InvenTree/settings/notifications.html:9 +#: templates/InvenTree/settings/user_notifications.html:9 +msgid "Notification Settings" +msgstr "" + +#: templates/InvenTree/settings/notifications.html:18 +msgid "Slug" +msgstr "" + +#: templates/InvenTree/settings/part.html:7 +msgid "Part Settings" +msgstr "" + +#: templates/InvenTree/settings/part.html:44 +msgid "Part Import" +msgstr "" + +#: templates/InvenTree/settings/part.html:48 +msgid "Import Part" +msgstr "" + +#: templates/InvenTree/settings/part_parameters.html:20 +msgid "Part Parameter Templates" +msgstr "" + +#: templates/InvenTree/settings/part_stocktake.html:7 +msgid "Stocktake Settings" +msgstr "" + +#: templates/InvenTree/settings/part_stocktake.html:25 +msgid "Stocktake Reports" +msgstr "" + +#: templates/InvenTree/settings/physical_units.html:8 +#: templates/InvenTree/settings/sidebar.html:35 +msgid "Physical Units" +msgstr "" + +#: templates/InvenTree/settings/physical_units.html:12 +msgid "Add Unit" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:9 +#: templates/InvenTree/settings/sidebar.html:64 +msgid "Plugin Settings" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:15 +msgid "Changing the settings below require you to immediately restart the server. Do not change this while under active usage." +msgstr "" + +#: templates/InvenTree/settings/plugin.html:38 +#: templates/InvenTree/settings/sidebar.html:66 +msgid "Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:44 +#: templates/InvenTree/settings/plugin.html:45 +#: templates/js/translated/plugin.js:151 +msgid "Install Plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:47 +#: templates/InvenTree/settings/plugin.html:48 +#: templates/js/translated/plugin.js:224 +msgid "Reload Plugins" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:58 +msgid "External plugins are not enabled for this InvenTree installation" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:73 +msgid "Plugin Error Stack" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:82 +msgid "Stage" +msgstr "" + +#: templates/InvenTree/settings/plugin.html:84 +#: templates/js/translated/notification.js:76 +msgid "Message" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:16 +msgid "Plugin information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:47 +msgid "no version information supplied" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:61 +msgid "License" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:70 +msgid "The code information is pulled from the latest git commit for this plugin. It might not reflect official version numbers or information but the actual code running." +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:76 +msgid "Package information" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:82 +msgid "Installation method" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:85 +msgid "This plugin was installed as a package" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:87 +msgid "This plugin was found in a local server path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:93 +msgid "Installation path" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:100 +#: templates/js/translated/plugin.js:68 +#: templates/js/translated/table_filters.js:517 +msgid "Builtin" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:101 +msgid "This is a builtin plugin which cannot be disabled" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:107 +#: templates/js/translated/plugin.js:72 +#: templates/js/translated/table_filters.js:521 +msgid "Sample" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:108 +msgid "This is a sample plugin" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:113 +msgid "Commit Author" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:117 +#: templates/about.html:36 +msgid "Commit Date" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:121 +#: templates/about.html:29 +msgid "Commit Hash" +msgstr "" + +#: templates/InvenTree/settings/plugin_settings.html:125 +msgid "Commit Message" +msgstr "" + +#: templates/InvenTree/settings/po.html:7 +msgid "Purchase Order Settings" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:7 +msgid "Pricing Settings" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:35 +msgid "Exchange Rates" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:39 +msgid "Update Now" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:47 +#: templates/InvenTree/settings/pricing.html:51 +msgid "Last Update" +msgstr "" + +#: templates/InvenTree/settings/pricing.html:51 +msgid "Never" +msgstr "" + +#: templates/InvenTree/settings/project_codes.html:8 +msgid "Project Code Settings" +msgstr "" + +#: templates/InvenTree/settings/project_codes.html:21 +#: templates/InvenTree/settings/sidebar.html:33 +msgid "Project Codes" +msgstr "" + +#: templates/InvenTree/settings/project_codes.html:25 +#: templates/InvenTree/settings/settings_staff_js.html:216 +msgid "New Project Code" +msgstr "" + +#: templates/InvenTree/settings/report.html:8 +#: templates/InvenTree/settings/user_reporting.html:9 +msgid "Report Settings" +msgstr "" + +#: templates/InvenTree/settings/returns.html:7 +msgid "Return Order Settings" +msgstr "" + +#: templates/InvenTree/settings/setting.html:31 +msgid "No value set" +msgstr "" + +#: templates/InvenTree/settings/setting.html:46 +msgid "Edit setting" +msgstr "" + +#: templates/InvenTree/settings/settings_js.html:58 +msgid "Edit Plugin Setting" +msgstr "" + +#: templates/InvenTree/settings/settings_js.html:60 +msgid "Edit Notification Setting" +msgstr "" + +#: templates/InvenTree/settings/settings_js.html:63 +msgid "Edit Global Setting" +msgstr "" + +#: templates/InvenTree/settings/settings_js.html:65 +msgid "Edit User Setting" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:49 +msgid "Rate" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:81 +#: templates/js/translated/forms.js:548 templates/js/translated/helpers.js:108 +#: templates/js/translated/part.js:395 templates/js/translated/pricing.js:629 +#: templates/js/translated/stock.js:252 users/models.py:407 +msgid "Delete" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:95 +msgid "Edit Custom Unit" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:110 +msgid "Delete Custom Unit" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:124 +msgid "New Custom Unit" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:140 +msgid "No project codes found" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:158 +#: templates/js/translated/build.js:2403 +msgid "group" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:175 +#: templates/InvenTree/settings/settings_staff_js.html:189 +msgid "Edit Project Code" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:176 +#: templates/InvenTree/settings/settings_staff_js.html:203 +msgid "Delete Project Code" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:285 +msgid "No category parameter templates found" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:308 +#: templates/js/translated/part.js:1652 +msgid "Edit Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:309 +#: templates/js/translated/part.js:1653 +msgid "Delete Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:326 +msgid "Edit Category Parameter Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:352 +msgid "Delete Category Parameter Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:387 +msgid "Create Category Parameter Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:416 +msgid "Create Part Parameter Template" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:439 +msgid "No stock location types found" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:464 +msgid "Location count" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:469 +#: templates/InvenTree/settings/settings_staff_js.html:483 +msgid "Edit Location Type" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:470 +msgid "Delete Location type" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:493 +msgid "Delete Location Type" +msgstr "" + +#: templates/InvenTree/settings/settings_staff_js.html:503 +#: templates/InvenTree/settings/stock.html:39 +msgid "New Location Type" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:6 +#: templates/InvenTree/settings/user_settings.html:9 +msgid "User Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:9 +msgid "Account" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:11 +msgid "Display" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:13 +msgid "Home Page" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:15 +#: templates/js/translated/forms.js:2200 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" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:19 +#: templates/InvenTree/settings/sidebar.html:43 +msgid "Reporting" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:24 +msgid "Global Settings" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:27 templates/stats.html:9 +msgid "Server" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:41 +msgid "Labels" +msgstr "" + +#: templates/InvenTree/settings/sidebar.html:45 +msgid "Categories" +msgstr "" + +#: templates/InvenTree/settings/so.html:7 +msgid "Sales Order Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:7 +msgid "Stock Settings" +msgstr "" + +#: templates/InvenTree/settings/stock.html:35 +msgid "Stock Location Types" +msgstr "" + +#: templates/InvenTree/settings/user.html:13 +msgid "Account Settings" +msgstr "" + +#: templates/InvenTree/settings/user.html:19 +#: templates/account/password_reset_from_key.html:4 +#: templates/account/password_reset_from_key.html:7 +msgid "Change Password" +msgstr "" + +#: templates/InvenTree/settings/user.html:55 +msgid "The following email addresses are associated with your account:" +msgstr "" + +#: templates/InvenTree/settings/user.html:76 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:78 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:80 +#: templates/js/translated/company.js:957 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:96 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:97 +msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc." +msgstr "" + +#: templates/InvenTree/settings/user.html:105 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:110 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:120 +msgid "Multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:125 +msgid "You have these factors available:" +msgstr "" + +#: templates/InvenTree/settings/user.html:135 +msgid "TOTP" +msgstr "" + +#: templates/InvenTree/settings/user.html:141 +msgid "Static" +msgstr "" + +#: templates/InvenTree/settings/user.html:150 +msgid "Multifactor authentication is not configured for your account" +msgstr "" + +#: templates/InvenTree/settings/user.html:157 +msgid "Change factors" +msgstr "" + +#: templates/InvenTree/settings/user.html:158 +msgid "Setup multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:160 +msgid "Remove multifactor" +msgstr "" + +#: templates/InvenTree/settings/user.html:171 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:177 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:178 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:187 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:188 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:192 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:193 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:194 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:207 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:209 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:223 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:29 +msgid "Theme Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:39 +msgid "Select theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:50 +msgid "Set Theme" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:58 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:67 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:83 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:85 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:92 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:97 +msgid "Show only sufficient" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:99 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:99 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:106 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:107 +msgid "Native language translation of the web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:108 +msgid "InvenTree Translation Project" +msgstr "" + +#: templates/InvenTree/settings/user_homepage.html:9 +msgid "Home Page Settings" +msgstr "" + +#: templates/InvenTree/settings/user_search.html:9 +msgid "Search Settings" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:9 +msgid "Single Sign On Accounts" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:16 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:52 +msgid "There are no social network accounts connected to this account." +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:58 +msgid "Add SSO Account" +msgstr "" + +#: templates/InvenTree/settings/user_sso.html:67 +msgid "Single Sign On is not enabled for this server" +msgstr "" + +#: templates/about.html:9 +msgid "InvenTree Version" +msgstr "" + +#: templates/about.html:14 +msgid "Development Version" +msgstr "" + +#: templates/about.html:17 +msgid "Up to Date" +msgstr "" + +#: templates/about.html:19 +msgid "Update Available" +msgstr "" + +#: templates/about.html:43 +msgid "Commit Branch" +msgstr "" + +#: templates/about.html:49 +msgid "InvenTree Documentation" +msgstr "" + +#: templates/about.html:54 +msgid "API Version" +msgstr "" + +#: templates/about.html:59 +msgid "Python Version" +msgstr "" + +#: templates/about.html:64 +msgid "Django Version" +msgstr "" + +#: templates/about.html:69 +msgid "View Code on GitHub" +msgstr "" + +#: templates/about.html:74 +msgid "Credits" +msgstr "" + +#: templates/about.html:79 +msgid "Mobile App" +msgstr "" + +#: templates/about.html:84 +msgid "Submit Bug Report" +msgstr "" + +#: templates/about.html:91 templates/clip.html:4 +#: templates/js/translated/helpers.js:592 +msgid "copy to clipboard" +msgstr "" + +#: templates/about.html:91 +msgid "copy version information" +msgstr "" + +#: templates/account/base.html:66 templates/navbar.html:17 +msgid "InvenTree logo" +msgstr "" + +#: templates/account/email_confirm.html:6 +#: templates/account/email_confirm.html:9 +msgid "Confirm Email Address" +msgstr "" + +#: templates/account/email_confirm.html:15 +#, python-format +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:775 +msgid "Confirm" +msgstr "" + +#: templates/account/email_confirm.html:29 +#, python-format +msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request." +msgstr "" + +#: templates/account/login.html:6 templates/account/login.html:19 +#: templates/account/login.html:40 templates/socialaccount/login.html:5 +msgid "Sign In" +msgstr "" + +#: templates/account/login.html:23 +msgid "Not a member?" +msgstr "" + +#: templates/account/login.html:25 templates/account/signup.html:11 +#: templates/account/signup.html:22 templates/socialaccount/signup.html:8 +#: templates/socialaccount/signup.html:23 +msgid "Sign Up" +msgstr "" + +#: templates/account/login.html:47 +msgid "Forgot Password?" +msgstr "" + +#: templates/account/login.html:55 +msgid "or log in with" +msgstr "" + +#: templates/account/logout.html:5 templates/account/logout.html:8 +#: templates/account/logout.html:20 +msgid "Sign Out" +msgstr "" + +#: templates/account/logout.html:10 +msgid "Are you sure you want to sign out?" +msgstr "" + +#: templates/account/logout.html:27 templates/allauth_2fa/backup_tokens.html:35 +#: templates/allauth_2fa/remove.html:24 templates/allauth_2fa/setup.html:45 +msgid "Return to Site" +msgstr "" + +#: templates/account/password_reset.html:5 +#: templates/account/password_reset.html:12 +msgid "Password Reset" +msgstr "" + +#: templates/account/password_reset.html:18 +msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it." +msgstr "" + +#: templates/account/password_reset.html:23 +msgid "Reset My Password" +msgstr "" + +#: templates/account/password_reset.html:27 templates/account/signup.html:37 +msgid "This function is currently disabled. Please contact an administrator." +msgstr "" + +#: templates/account/password_reset_from_key.html:7 +msgid "Bad Token" +msgstr "" + +#: templates/account/password_reset_from_key.html:11 +#, python-format +msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset." +msgstr "" + +#: templates/account/password_reset_from_key.html:18 +msgid "Change password" +msgstr "" + +#: templates/account/password_reset_from_key.html:22 +msgid "Your password is now changed." +msgstr "" + +#: templates/account/signup.html:13 +#, python-format +msgid "Already have an account? Then please sign in." +msgstr "" + +#: templates/account/signup.html:28 +msgid "Use a SSO-provider for signup" +msgstr "" + +#: templates/account/signup_closed.html:5 +#: templates/account/signup_closed.html:8 +msgid "Sign Up Closed" +msgstr "" + +#: templates/account/signup_closed.html:10 +msgid "Sign up is currently closed." +msgstr "" + +#: templates/account/signup_closed.html:15 +#: templates/socialaccount/authentication_error.html:19 +#: templates/socialaccount/login.html:38 templates/socialaccount/signup.html:30 +msgid "Return to login page" +msgstr "" + +#: templates/admin_button.html:8 +msgid "View in administration panel" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:5 +msgid "Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/authenticate.html:13 +msgid "Authenticate" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:6 +msgid "Two-Factor Authentication Backup Tokens" +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:17 +msgid "Backup tokens have been generated, but are not revealed here for security reasons. Press the button below to generate new ones." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:20 +msgid "No backup tokens are available. Press the button below to generate some." +msgstr "" + +#: templates/allauth_2fa/backup_tokens.html:28 +msgid "Generate Tokens" +msgstr "" + +#: templates/allauth_2fa/remove.html:6 +msgid "Disable Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/remove.html:9 +msgid "Are you sure?" +msgstr "" + +#: templates/allauth_2fa/remove.html:17 +msgid "Disable 2FA" +msgstr "" + +#: templates/allauth_2fa/setup.html:6 +msgid "Setup Two-Factor Authentication" +msgstr "" + +#: templates/allauth_2fa/setup.html:10 +msgid "Step 1" +msgstr "" + +#: templates/allauth_2fa/setup.html:14 +msgid "Scan the QR code below with a token generator of your choice (for instance Google Authenticator)." +msgstr "" + +#: templates/allauth_2fa/setup.html:20 +msgid "Secret: " +msgstr "" + +#: templates/allauth_2fa/setup.html:24 +msgid "Step 2" +msgstr "" + +#: templates/allauth_2fa/setup.html:28 +msgid "Input a token generated by the app:" +msgstr "" + +#: templates/allauth_2fa/setup.html:38 +msgid "Verify" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:70 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:48 +msgid "Add Attachment" +msgstr "" + +#: templates/barcode_data.html:5 +msgid "Barcode Identifier" +msgstr "" + +#: templates/base.html:102 +msgid "Server Restart Required" +msgstr "" + +#: templates/base.html:105 +msgid "A configuration option has been changed which requires a server restart" +msgstr "" + +#: templates/base.html:105 templates/base.html:115 +msgid "Contact your system administrator for further information" +msgstr "" + +#: templates/base.html:112 +msgid "Pending Database Migrations" +msgstr "" + +#: templates/base.html:115 +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 +#: templates/email/overdue_sales_order.html:9 +#: templates/email/purchase_order_received.html:9 +#: templates/email/return_order_received.html:9 +msgid "Click on the following link to view this order" +msgstr "" + +#: templates/email/build_order_required_stock.html:7 +msgid "Stock is required for the following build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:8 +#, python-format +msgid "Build order %(build)s - building %(quantity)s x %(part)s" +msgstr "" + +#: templates/email/build_order_required_stock.html:10 +msgid "Click on the following link to view this build order" +msgstr "" + +#: templates/email/build_order_required_stock.html:14 +msgid "The following parts are low on required stock" +msgstr "" + +#: templates/email/build_order_required_stock.html:18 +#: templates/js/translated/bom.js:1674 templates/js/translated/build.js:2750 +msgid "Required Quantity" +msgstr "" + +#: templates/email/build_order_required_stock.html:38 +#: templates/email/low_stock_notification.html:30 +msgid "You are receiving this email because you are subscribed to notifications for this part " +msgstr "" + +#: templates/email/low_stock_notification.html:9 +msgid "Click on the following link to view this part" +msgstr "" + +#: templates/email/low_stock_notification.html:18 +#: templates/js/translated/part.js:3237 +msgid "Minimum Quantity" +msgstr "" + +#: templates/js/translated/api.js:225 templates/js/translated/modals.js:1135 +msgid "No Response" +msgstr "" + +#: templates/js/translated/api.js:226 templates/js/translated/modals.js:1136 +msgid "No response from the InvenTree server" +msgstr "" + +#: templates/js/translated/api.js:232 +msgid "Error 400: Bad request" +msgstr "" + +#: templates/js/translated/api.js:233 +msgid "API request returned error code 400" +msgstr "" + +#: templates/js/translated/api.js:237 templates/js/translated/modals.js:1145 +msgid "Error 401: Not Authenticated" +msgstr "" + +#: templates/js/translated/api.js:238 templates/js/translated/modals.js:1146 +msgid "Authentication credentials not supplied" +msgstr "" + +#: templates/js/translated/api.js:242 templates/js/translated/modals.js:1150 +msgid "Error 403: Permission Denied" +msgstr "" + +#: templates/js/translated/api.js:243 templates/js/translated/modals.js:1151 +msgid "You do not have the required permissions to access this function" +msgstr "" + +#: templates/js/translated/api.js:247 templates/js/translated/modals.js:1155 +msgid "Error 404: Resource Not Found" +msgstr "" + +#: templates/js/translated/api.js:248 templates/js/translated/modals.js:1156 +msgid "The requested resource could not be located on the server" +msgstr "" + +#: templates/js/translated/api.js:252 +msgid "Error 405: Method Not Allowed" +msgstr "" + +#: templates/js/translated/api.js:253 +msgid "HTTP method not allowed at URL" +msgstr "" + +#: templates/js/translated/api.js:257 templates/js/translated/modals.js:1160 +msgid "Error 408: Timeout" +msgstr "" + +#: templates/js/translated/api.js:258 templates/js/translated/modals.js:1161 +msgid "Connection timeout while requesting data from server" +msgstr "" + +#: templates/js/translated/api.js:261 +msgid "Error 503: Service Unavailable" +msgstr "" + +#: templates/js/translated/api.js:262 +msgid "The server is currently unavailable" +msgstr "" + +#: templates/js/translated/api.js:265 +msgid "Unhandled Error Code" +msgstr "" + +#: templates/js/translated/api.js:266 +msgid "Error code" +msgstr "" + +#: templates/js/translated/attachment.js:114 +msgid "All selected attachments will be deleted" +msgstr "" + +#: templates/js/translated/attachment.js:129 +msgid "Delete Attachments" +msgstr "" + +#: templates/js/translated/attachment.js:205 +msgid "Delete attachments" +msgstr "" + +#: templates/js/translated/attachment.js:260 +msgid "Attachment actions" +msgstr "" + +#: templates/js/translated/attachment.js:294 +msgid "No attachments found" +msgstr "" + +#: templates/js/translated/attachment.js:334 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:365 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:385 +msgid "Edit attachment" +msgstr "" + +#: templates/js/translated/attachment.js:393 +msgid "Delete attachment" +msgstr "" + +#: templates/js/translated/barcode.js:43 +msgid "Scan barcode data here using barcode scanner" +msgstr "" + +#: templates/js/translated/barcode.js:45 +msgid "Enter barcode data" +msgstr "" + +#: templates/js/translated/barcode.js:59 +msgid "Scan barcode using connected webcam" +msgstr "" + +#: templates/js/translated/barcode.js:138 +msgid "Enter optional notes for stock transfer" +msgstr "" + +#: templates/js/translated/barcode.js:139 +msgid "Enter notes" +msgstr "" + +#: templates/js/translated/barcode.js:188 +msgid "Server error" +msgstr "" + +#: templates/js/translated/barcode.js:217 +msgid "Unknown response from server" +msgstr "" + +#: templates/js/translated/barcode.js:252 +#: templates/js/translated/modals.js:1125 +msgid "Invalid server response" +msgstr "" + +#: templates/js/translated/barcode.js:403 +msgid "Scan barcode data" +msgstr "" + +#: templates/js/translated/barcode.js:451 templates/navbar.html:114 +msgid "Scan Barcode" +msgstr "" + +#: templates/js/translated/barcode.js:489 +msgid "No URL in response" +msgstr "" + +#: templates/js/translated/barcode.js:529 +msgid "This will remove the link to the associated barcode" +msgstr "" + +#: templates/js/translated/barcode.js:535 +msgid "Unlink" +msgstr "" + +#: templates/js/translated/barcode.js:598 templates/js/translated/stock.js:1188 +msgid "Remove stock item" +msgstr "" + +#: templates/js/translated/barcode.js:641 +msgid "Scan Stock Items Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:643 +msgid "Scan stock item barcode to check in to this location" +msgstr "" + +#: templates/js/translated/barcode.js:646 +#: templates/js/translated/barcode.js:843 +msgid "Check In" +msgstr "" + +#: templates/js/translated/barcode.js:678 +msgid "No barcode provided" +msgstr "" + +#: templates/js/translated/barcode.js:718 +msgid "Stock Item already scanned" +msgstr "" + +#: templates/js/translated/barcode.js:722 +msgid "Stock Item already in this location" +msgstr "" + +#: templates/js/translated/barcode.js:729 +msgid "Added stock item" +msgstr "" + +#: templates/js/translated/barcode.js:738 +msgid "Barcode does not match valid stock item" +msgstr "" + +#: templates/js/translated/barcode.js:757 +msgid "Scan Stock Container Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:759 +msgid "Scan stock container barcode to check in to this location" +msgstr "" + +#: templates/js/translated/barcode.js:793 +msgid "Barcode does not match valid stock location" +msgstr "" + +#: templates/js/translated/barcode.js:837 +msgid "Check Into Location" +msgstr "" + +#: templates/js/translated/barcode.js:906 +#: templates/js/translated/barcode.js:915 +msgid "Barcode does not match a valid location" +msgstr "" + +#: templates/js/translated/bom.js:78 +msgid "Create BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:132 +msgid "Display row data" +msgstr "" + +#: templates/js/translated/bom.js:188 +msgid "Row Data" +msgstr "" + +#: templates/js/translated/bom.js:189 templates/js/translated/bom.js:700 +#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:629 +#: templates/js/translated/modals.js:757 templates/js/translated/modals.js:1065 +#: templates/js/translated/purchase_order.js:797 templates/modals.html:15 +#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50 +msgid "Close" +msgstr "" + +#: templates/js/translated/bom.js:306 +msgid "Download BOM Template" +msgstr "" + +#: templates/js/translated/bom.js:351 +msgid "Multi Level BOM" +msgstr "" + +#: templates/js/translated/bom.js:352 +msgid "Include BOM data for subassemblies" +msgstr "" + +#: templates/js/translated/bom.js:357 +msgid "Levels" +msgstr "" + +#: templates/js/translated/bom.js:358 +msgid "Select maximum number of BOM levels to export (0 = all levels)" +msgstr "" + +#: templates/js/translated/bom.js:365 +msgid "Include Alternative Parts" +msgstr "" + +#: templates/js/translated/bom.js:366 +msgid "Include alternative parts in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:371 +msgid "Include Parameter Data" +msgstr "" + +#: templates/js/translated/bom.js:372 +msgid "Include part parameter data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:377 +msgid "Include Stock Data" +msgstr "" + +#: templates/js/translated/bom.js:378 +msgid "Include part stock data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:383 +msgid "Include Manufacturer Data" +msgstr "" + +#: templates/js/translated/bom.js:384 +msgid "Include part manufacturer data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:389 +msgid "Include Supplier Data" +msgstr "" + +#: templates/js/translated/bom.js:390 +msgid "Include part supplier data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:395 +msgid "Include Pricing Data" +msgstr "" + +#: templates/js/translated/bom.js:396 +msgid "Include part pricing data in exported BOM" +msgstr "" + +#: templates/js/translated/bom.js:591 +msgid "Remove substitute part" +msgstr "" + +#: templates/js/translated/bom.js:645 +msgid "Select and add a new substitute part using the input below" +msgstr "" + +#: templates/js/translated/bom.js:656 +msgid "Are you sure you wish to remove this substitute part link?" +msgstr "" + +#: templates/js/translated/bom.js:662 +msgid "Remove Substitute Part" +msgstr "" + +#: templates/js/translated/bom.js:701 +msgid "Add Substitute" +msgstr "" + +#: templates/js/translated/bom.js:702 +msgid "Edit BOM Item Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:764 +msgid "All selected BOM items will be deleted" +msgstr "" + +#: templates/js/translated/bom.js:780 +msgid "Delete selected BOM items?" +msgstr "" + +#: templates/js/translated/bom.js:826 +msgid "Delete items" +msgstr "" + +#: templates/js/translated/bom.js:936 +msgid "Load BOM for subassembly" +msgstr "" + +#: templates/js/translated/bom.js:946 +msgid "Substitutes Available" +msgstr "" + +#: templates/js/translated/bom.js:950 templates/js/translated/build.js:2676 +msgid "Variant stock allowed" +msgstr "" + +#: templates/js/translated/bom.js:1014 +msgid "Substitutes" +msgstr "" + +#: templates/js/translated/bom.js:1139 +msgid "BOM pricing is complete" +msgstr "" + +#: templates/js/translated/bom.js:1144 +msgid "BOM pricing is incomplete" +msgstr "" + +#: templates/js/translated/bom.js:1151 +msgid "No pricing available" +msgstr "" + +#: templates/js/translated/bom.js:1184 templates/js/translated/build.js:2815 +msgid "External stock" +msgstr "" + +#: templates/js/translated/bom.js:1188 templates/js/translated/build.js:2789 +#: templates/js/translated/sales_order.js:1946 +msgid "No Stock Available" +msgstr "" + +#: templates/js/translated/bom.js:1193 templates/js/translated/build.js:2793 +msgid "Includes variant and substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:1195 templates/js/translated/build.js:2795 +#: templates/js/translated/part.js:1263 +#: templates/js/translated/sales_order.js:1943 +msgid "Includes variant stock" +msgstr "" + +#: templates/js/translated/bom.js:1197 templates/js/translated/build.js:2797 +msgid "Includes substitute stock" +msgstr "" + +#: templates/js/translated/bom.js:1225 templates/js/translated/build.js:2780 +msgid "Consumable item" +msgstr "" + +#: templates/js/translated/bom.js:1285 +msgid "Validate BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1287 +msgid "This line has been validated" +msgstr "" + +#: templates/js/translated/bom.js:1289 +msgid "Edit substitute parts" +msgstr "" + +#: templates/js/translated/bom.js:1291 templates/js/translated/bom.js:1486 +msgid "Edit BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1293 +msgid "Delete BOM Item" +msgstr "" + +#: templates/js/translated/bom.js:1313 +msgid "View BOM" +msgstr "" + +#: templates/js/translated/bom.js:1397 +msgid "No BOM items found" +msgstr "" + +#: templates/js/translated/bom.js:1657 templates/js/translated/build.js:2661 +msgid "Required Part" +msgstr "" + +#: templates/js/translated/bom.js:1683 +msgid "Inherited from parent BOM" +msgstr "" + +#: templates/js/translated/build.js:143 +msgid "Edit Build Order" +msgstr "" + +#: templates/js/translated/build.js:194 +msgid "Create Build Order" +msgstr "" + +#: templates/js/translated/build.js:226 +msgid "Cancel Build Order" +msgstr "" + +#: templates/js/translated/build.js:235 +msgid "Are you sure you wish to cancel this build?" +msgstr "" + +#: templates/js/translated/build.js:241 +msgid "Stock items have been allocated to this build order" +msgstr "" + +#: templates/js/translated/build.js:248 +msgid "There are incomplete outputs remaining for this build order" +msgstr "" + +#: templates/js/translated/build.js:300 +msgid "Build order is ready to be completed" +msgstr "" + +#: templates/js/translated/build.js:308 +msgid "This build order cannot be completed as there are incomplete outputs" +msgstr "" + +#: templates/js/translated/build.js:313 +msgid "Build Order is incomplete" +msgstr "" + +#: templates/js/translated/build.js:331 +msgid "Complete Build Order" +msgstr "" + +#: templates/js/translated/build.js:372 templates/js/translated/stock.js:127 +#: templates/js/translated/stock.js:301 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/build.js:374 templates/js/translated/stock.js:129 +#: templates/js/translated/stock.js:303 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/build.js:383 +msgid "The Bill of Materials contains trackable parts" +msgstr "" + +#: templates/js/translated/build.js:384 +msgid "Build outputs must be generated individually" +msgstr "" + +#: templates/js/translated/build.js:392 +msgid "Trackable parts can have serial numbers specified" +msgstr "" + +#: templates/js/translated/build.js:393 +msgid "Enter serial numbers to generate multiple single build outputs" +msgstr "" + +#: templates/js/translated/build.js:400 +msgid "Create Build Output" +msgstr "" + +#: templates/js/translated/build.js:431 +msgid "Allocate stock items to this build output" +msgstr "" + +#: templates/js/translated/build.js:439 +msgid "Deallocate stock from build output" +msgstr "" + +#: templates/js/translated/build.js:448 +msgid "Complete build output" +msgstr "" + +#: templates/js/translated/build.js:456 +msgid "Scrap build output" +msgstr "" + +#: templates/js/translated/build.js:463 +msgid "Delete build output" +msgstr "" + +#: templates/js/translated/build.js:483 +msgid "Are you sure you wish to deallocate the selected stock items from this build?" +msgstr "" + +#: templates/js/translated/build.js:501 +msgid "Deallocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:587 templates/js/translated/build.js:714 +#: templates/js/translated/build.js:839 +msgid "Select Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:588 templates/js/translated/build.js:715 +#: templates/js/translated/build.js:840 +msgid "At least one build output must be selected" +msgstr "" + +#: templates/js/translated/build.js:602 +msgid "Selected build outputs will be marked as complete" +msgstr "" + +#: templates/js/translated/build.js:606 templates/js/translated/build.js:739 +#: templates/js/translated/build.js:862 +msgid "Output" +msgstr "" + +#: templates/js/translated/build.js:633 +msgid "Complete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:730 +msgid "Selected build outputs will be marked as scrapped" +msgstr "" + +#: templates/js/translated/build.js:732 +msgid "Scrapped output are marked as rejected" +msgstr "" + +#: templates/js/translated/build.js:733 +msgid "Allocated stock items will no longer be available" +msgstr "" + +#: templates/js/translated/build.js:734 +msgid "The completion status of the build order will not be adjusted" +msgstr "" + +#: templates/js/translated/build.js:764 +msgid "Scrap Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:854 +msgid "Selected build outputs will be deleted" +msgstr "" + +#: templates/js/translated/build.js:856 +msgid "Build output data will be permanently deleted" +msgstr "" + +#: templates/js/translated/build.js:857 +msgid "Allocated stock items will be returned to stock" +msgstr "" + +#: templates/js/translated/build.js:875 +msgid "Delete Build Outputs" +msgstr "" + +#: templates/js/translated/build.js:962 +msgid "Delete allocations" +msgstr "" + +#: templates/js/translated/build.js:969 +msgid "Delete Stock Allocations" +msgstr "" + +#: templates/js/translated/build.js:992 +msgid "No allocated stock" +msgstr "" + +#: templates/js/translated/build.js:1048 +msgid "Stock item" +msgstr "" + +#: templates/js/translated/build.js:1073 +msgid "Edit build allocation" +msgstr "" + +#: templates/js/translated/build.js:1074 +msgid "Delete build allocation" +msgstr "" + +#: templates/js/translated/build.js:1092 +msgid "Edit Build Allocation" +msgstr "" + +#: templates/js/translated/build.js:1105 +msgid "Delete Build Allocation" +msgstr "" + +#: templates/js/translated/build.js:1136 +msgid "No build order allocations found" +msgstr "" + +#: templates/js/translated/build.js:1181 +msgid "Location not specified" +msgstr "" + +#: templates/js/translated/build.js:1203 +msgid "Complete outputs" +msgstr "" + +#: templates/js/translated/build.js:1221 +msgid "Scrap outputs" +msgstr "" + +#: templates/js/translated/build.js:1239 +msgid "Delete outputs" +msgstr "" + +#: templates/js/translated/build.js:1292 +msgid "build output" +msgstr "" + +#: templates/js/translated/build.js:1293 +msgid "build outputs" +msgstr "" + +#: templates/js/translated/build.js:1297 +msgid "Build output actions" +msgstr "" + +#: templates/js/translated/build.js:1473 +msgid "No active build outputs found" +msgstr "" + +#: templates/js/translated/build.js:1566 +msgid "Allocated Lines" +msgstr "" + +#: templates/js/translated/build.js:1580 +msgid "Required Tests" +msgstr "" + +#: templates/js/translated/build.js:1752 +#: templates/js/translated/purchase_order.js:611 +#: templates/js/translated/sales_order.js:1207 +msgid "Select Parts" +msgstr "" + +#: templates/js/translated/build.js:1753 +#: templates/js/translated/sales_order.js:1208 +msgid "You must select at least one part to allocate" +msgstr "" + +#: templates/js/translated/build.js:1816 +#: templates/js/translated/sales_order.js:1157 +msgid "Specify stock allocation quantity" +msgstr "" + +#: templates/js/translated/build.js:1893 +msgid "All Parts Allocated" +msgstr "" + +#: templates/js/translated/build.js:1894 +msgid "All selected parts have been fully allocated" +msgstr "" + +#: templates/js/translated/build.js:1908 +#: templates/js/translated/sales_order.js:1222 +msgid "Select source location (leave blank to take from all locations)" +msgstr "" + +#: templates/js/translated/build.js:1936 +msgid "Allocate Stock Items to Build Order" +msgstr "" + +#: templates/js/translated/build.js:1947 +#: templates/js/translated/sales_order.js:1319 +msgid "No matching stock locations" +msgstr "" + +#: templates/js/translated/build.js:2020 +#: templates/js/translated/sales_order.js:1398 +msgid "No matching stock items" +msgstr "" + +#: templates/js/translated/build.js:2117 +msgid "Automatic Stock Allocation" +msgstr "" + +#: templates/js/translated/build.js:2118 +msgid "Stock items will be automatically allocated to this build order, according to the provided guidelines" +msgstr "" + +#: templates/js/translated/build.js:2120 +msgid "If a location is specified, stock will only be allocated from that location" +msgstr "" + +#: templates/js/translated/build.js:2121 +msgid "If stock is considered interchangeable, it will be allocated from the first location it is found" +msgstr "" + +#: templates/js/translated/build.js:2122 +msgid "If substitute stock is allowed, it will be used where stock of the primary part cannot be found" +msgstr "" + +#: templates/js/translated/build.js:2152 +msgid "Allocate Stock Items" +msgstr "" + +#: templates/js/translated/build.js:2257 +msgid "No builds matching query" +msgstr "" + +#: templates/js/translated/build.js:2292 templates/js/translated/build.js:2655 +#: templates/js/translated/forms.js:2196 templates/js/translated/forms.js:2212 +#: templates/js/translated/part.js:2322 templates/js/translated/part.js:2761 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2796 +msgid "Select" +msgstr "" + +#: templates/js/translated/build.js:2306 +msgid "Build order is overdue" +msgstr "" + +#: templates/js/translated/build.js:2388 templates/js/translated/stock.js:3127 +msgid "No user information" +msgstr "" + +#: templates/js/translated/build.js:2564 +#: templates/js/translated/sales_order.js:1682 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:2565 +#: templates/js/translated/sales_order.js:1683 +msgid "Delete stock allocation" +msgstr "" + +#: templates/js/translated/build.js:2580 +msgid "Edit Allocation" +msgstr "" + +#: templates/js/translated/build.js:2592 +msgid "Remove Allocation" +msgstr "" + +#: templates/js/translated/build.js:2631 +msgid "build line" +msgstr "" + +#: templates/js/translated/build.js:2632 +msgid "build lines" +msgstr "" + +#: templates/js/translated/build.js:2650 +msgid "No build lines found" +msgstr "" + +#: templates/js/translated/build.js:2680 templates/js/translated/part.js:793 +#: templates/js/translated/part.js:1209 +msgid "Trackable part" +msgstr "" + +#: templates/js/translated/build.js:2723 +msgid "Gets Inherited" +msgstr "" + +#: templates/js/translated/build.js:2733 +msgid "Unit Quantity" +msgstr "" + +#: templates/js/translated/build.js:2785 +#: templates/js/translated/sales_order.js:1951 +msgid "Sufficient stock available" +msgstr "" + +#: templates/js/translated/build.js:2840 +msgid "Consumable Item" +msgstr "" + +#: templates/js/translated/build.js:2847 +msgid "Tracked item" +msgstr "" + +#: templates/js/translated/build.js:2848 +msgid "Allocate tracked items against individual build outputs" +msgstr "" + +#: templates/js/translated/build.js:2856 +#: templates/js/translated/sales_order.js:2052 +msgid "Build stock" +msgstr "" + +#: templates/js/translated/build.js:2861 templates/js/translated/stock.js:1954 +msgid "Order stock" +msgstr "" + +#: templates/js/translated/build.js:2865 +#: templates/js/translated/sales_order.js:2046 +msgid "Allocate stock" +msgstr "" + +#: templates/js/translated/build.js:2869 +msgid "Remove stock allocation" +msgstr "" + +#: templates/js/translated/company.js:98 +msgid "Add Manufacturer" +msgstr "" + +#: templates/js/translated/company.js:111 +#: templates/js/translated/company.js:213 +msgid "Add Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:132 +msgid "Edit Manufacturer Part" +msgstr "" + +#: templates/js/translated/company.js:201 +#: templates/js/translated/purchase_order.js:93 +msgid "Add Supplier" +msgstr "" + +#: templates/js/translated/company.js:243 +#: templates/js/translated/purchase_order.js:318 +msgid "Add Supplier Part" +msgstr "" + +#: templates/js/translated/company.js:344 +msgid "All selected supplier parts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:360 +msgid "Delete Supplier Parts" +msgstr "" + +#: templates/js/translated/company.js:466 +msgid "Add new Company" +msgstr "" + +#: templates/js/translated/company.js:546 +msgid "Parts Supplied" +msgstr "" + +#: templates/js/translated/company.js:555 +msgid "Parts Manufactured" +msgstr "" + +#: templates/js/translated/company.js:570 +msgid "No company information found" +msgstr "" + +#: templates/js/translated/company.js:619 +msgid "Create New Contact" +msgstr "" + +#: templates/js/translated/company.js:635 +#: templates/js/translated/company.js:758 +msgid "Edit Contact" +msgstr "" + +#: templates/js/translated/company.js:672 +msgid "All selected contacts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:678 +#: templates/js/translated/company.js:742 +msgid "Role" +msgstr "" + +#: templates/js/translated/company.js:686 +msgid "Delete Contacts" +msgstr "" + +#: templates/js/translated/company.js:717 +msgid "No contacts found" +msgstr "" + +#: templates/js/translated/company.js:730 +msgid "Phone Number" +msgstr "" + +#: templates/js/translated/company.js:736 +msgid "Email Address" +msgstr "" + +#: templates/js/translated/company.js:762 +msgid "Delete Contact" +msgstr "" + +#: templates/js/translated/company.js:859 +msgid "Create New Address" +msgstr "" + +#: templates/js/translated/company.js:874 +#: templates/js/translated/company.js:1035 +msgid "Edit Address" +msgstr "" + +#: templates/js/translated/company.js:909 +msgid "All selected addresses will be deleted" +msgstr "" + +#: templates/js/translated/company.js:923 +msgid "Delete Addresses" +msgstr "" + +#: templates/js/translated/company.js:950 +msgid "No addresses found" +msgstr "" + +#: templates/js/translated/company.js:989 +msgid "Postal city" +msgstr "" + +#: templates/js/translated/company.js:995 +msgid "State/province" +msgstr "" + +#: templates/js/translated/company.js:1007 +msgid "Courier notes" +msgstr "" + +#: templates/js/translated/company.js:1013 +msgid "Internal notes" +msgstr "" + +#: templates/js/translated/company.js:1039 +msgid "Delete Address" +msgstr "" + +#: templates/js/translated/company.js:1112 +msgid "All selected manufacturer parts will be deleted" +msgstr "" + +#: templates/js/translated/company.js:1127 +msgid "Delete Manufacturer Parts" +msgstr "" + +#: templates/js/translated/company.js:1161 +msgid "All selected parameters will be deleted" +msgstr "" + +#: templates/js/translated/company.js:1175 +msgid "Delete Parameters" +msgstr "" + +#: templates/js/translated/company.js:1191 +#: templates/js/translated/company.js:1479 templates/js/translated/part.js:2250 +msgid "Order parts" +msgstr "" + +#: templates/js/translated/company.js:1208 +msgid "Delete manufacturer parts" +msgstr "" + +#: templates/js/translated/company.js:1240 +msgid "Manufacturer part actions" +msgstr "" + +#: templates/js/translated/company.js:1259 +msgid "No manufacturer parts found" +msgstr "" + +#: templates/js/translated/company.js:1279 +#: templates/js/translated/company.js:1567 templates/js/translated/part.js:801 +#: templates/js/translated/part.js:1217 +msgid "Template part" +msgstr "" + +#: templates/js/translated/company.js:1283 +#: templates/js/translated/company.js:1571 templates/js/translated/part.js:805 +#: templates/js/translated/part.js:1221 +msgid "Assembled part" +msgstr "" + +#: templates/js/translated/company.js:1403 templates/js/translated/part.js:1471 +msgid "No parameters found" +msgstr "" + +#: templates/js/translated/company.js:1438 templates/js/translated/part.js:1534 +msgid "Edit parameter" +msgstr "" + +#: templates/js/translated/company.js:1439 templates/js/translated/part.js:1535 +msgid "Delete parameter" +msgstr "" + +#: templates/js/translated/company.js:1456 templates/js/translated/part.js:1440 +msgid "Edit Parameter" +msgstr "" + +#: templates/js/translated/company.js:1465 templates/js/translated/part.js:1556 +msgid "Delete Parameter" +msgstr "" + +#: templates/js/translated/company.js:1496 +msgid "Delete supplier parts" +msgstr "" + +#: templates/js/translated/company.js:1546 +msgid "No supplier parts found" +msgstr "" + +#: templates/js/translated/company.js:1664 +msgid "Base Units" +msgstr "" + +#: templates/js/translated/company.js:1694 +msgid "Availability" +msgstr "" + +#: templates/js/translated/company.js:1725 +msgid "Edit supplier part" +msgstr "" + +#: templates/js/translated/company.js:1726 +msgid "Delete supplier part" +msgstr "" + +#: templates/js/translated/company.js:1779 +#: templates/js/translated/pricing.js:694 +msgid "Delete Price Break" +msgstr "" + +#: templates/js/translated/company.js:1789 +#: templates/js/translated/pricing.js:712 +msgid "Edit Price Break" +msgstr "" + +#: templates/js/translated/company.js:1804 +msgid "No price break information found" +msgstr "" + +#: templates/js/translated/company.js:1833 +msgid "Last updated" +msgstr "" + +#: templates/js/translated/company.js:1840 +msgid "Edit price break" +msgstr "" + +#: templates/js/translated/company.js:1841 +msgid "Delete price break" +msgstr "" + +#: templates/js/translated/filters.js:189 +#: templates/js/translated/filters.js:670 +msgid "true" +msgstr "" + +#: templates/js/translated/filters.js:193 +#: templates/js/translated/filters.js:671 +msgid "false" +msgstr "" + +#: templates/js/translated/filters.js:217 +msgid "Select filter" +msgstr "" + +#: templates/js/translated/filters.js:440 +msgid "Print Labels" +msgstr "" + +#: templates/js/translated/filters.js:444 +msgid "Print Reports" +msgstr "" + +#: templates/js/translated/filters.js:456 +msgid "Download table data" +msgstr "" + +#: templates/js/translated/filters.js:463 +msgid "Reload table data" +msgstr "" + +#: templates/js/translated/filters.js:472 +msgid "Add new filter" +msgstr "" + +#: templates/js/translated/filters.js:480 +msgid "Clear all filters" +msgstr "" + +#: templates/js/translated/filters.js:580 +msgid "Create filter" +msgstr "" + +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:394 +#: templates/js/translated/forms.js:408 templates/js/translated/forms.js:422 +msgid "Action Prohibited" +msgstr "" + +#: templates/js/translated/forms.js:381 +msgid "Create operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:396 +msgid "Update operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:410 +msgid "Delete operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:424 +msgid "View operation not allowed" +msgstr "" + +#: templates/js/translated/forms.js:801 +msgid "Keep this form open" +msgstr "" + +#: templates/js/translated/forms.js:904 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1478 templates/modals.html:19 +#: templates/modals.html:43 +msgid "Form errors exist" +msgstr "" + +#: templates/js/translated/forms.js:2008 +msgid "No results found" +msgstr "" + +#: templates/js/translated/forms.js:2318 templates/js/translated/search.js:239 +msgid "Searching" +msgstr "" + +#: templates/js/translated/forms.js:2532 +msgid "Clear input" +msgstr "" + +#: templates/js/translated/forms.js:3134 +msgid "File Column" +msgstr "" + +#: templates/js/translated/forms.js:3134 +msgid "Field Name" +msgstr "" + +#: templates/js/translated/forms.js:3146 +msgid "Select Columns" +msgstr "" + +#: templates/js/translated/helpers.js:80 +msgid "YES" +msgstr "" + +#: templates/js/translated/helpers.js:83 +msgid "NO" +msgstr "" + +#: templates/js/translated/helpers.js:96 +msgid "True" +msgstr "" + +#: templates/js/translated/helpers.js:97 +msgid "False" +msgstr "" + +#: templates/js/translated/index.js:104 +msgid "No parts required for builds" +msgstr "" + +#: templates/js/translated/label.js:48 templates/js/translated/report.js:38 +msgid "Select Items" +msgstr "" + +#: templates/js/translated/label.js:49 templates/js/translated/report.js:39 +msgid "No items selected for printing" +msgstr "" + +#: templates/js/translated/label.js:143 +msgid "Labels sent to printer" +msgstr "" + +#: templates/js/translated/modals.js:59 templates/js/translated/modals.js:159 +#: templates/js/translated/modals.js:688 +msgid "Cancel" +msgstr "" + +#: templates/js/translated/modals.js:64 templates/js/translated/modals.js:158 +#: templates/js/translated/modals.js:756 templates/js/translated/modals.js:1064 +#: templates/modals.html:28 templates/modals.html:51 +msgid "Submit" +msgstr "" + +#: templates/js/translated/modals.js:157 +msgid "Form Title" +msgstr "" + +#: templates/js/translated/modals.js:446 +msgid "Waiting for server..." +msgstr "" + +#: templates/js/translated/modals.js:597 +msgid "Show Error Information" +msgstr "" + +#: templates/js/translated/modals.js:687 +msgid "Accept" +msgstr "" + +#: templates/js/translated/modals.js:745 +msgid "Loading Data" +msgstr "" + +#: templates/js/translated/modals.js:1016 +msgid "Invalid response from server" +msgstr "" + +#: templates/js/translated/modals.js:1016 +msgid "Form data missing from server response" +msgstr "" + +#: templates/js/translated/modals.js:1028 +msgid "Error posting form data" +msgstr "" + +#: templates/js/translated/modals.js:1125 +msgid "JSON response missing form data" +msgstr "" + +#: templates/js/translated/modals.js:1140 +msgid "Error 400: Bad Request" +msgstr "" + +#: templates/js/translated/modals.js:1141 +msgid "Server returned error code 400" +msgstr "" + +#: templates/js/translated/modals.js:1164 +msgid "Error requesting form data" +msgstr "" + +#: templates/js/translated/news.js:33 +msgid "No news found" +msgstr "" + +#: templates/js/translated/news.js:38 +#: templates/js/translated/notification.js:46 +#: templates/js/translated/part.js:1611 +msgid "ID" +msgstr "" + +#: templates/js/translated/notification.js:52 +msgid "Age" +msgstr "" + +#: templates/js/translated/notification.js:65 +msgid "Notification" +msgstr "" + +#: templates/js/translated/notification.js:224 +msgid "Mark as unread" +msgstr "" + +#: templates/js/translated/notification.js:228 +msgid "Mark as read" +msgstr "" + +#: templates/js/translated/notification.js:254 +msgid "No unread notifications" +msgstr "" + +#: templates/js/translated/notification.js:296 templates/notifications.html:12 +msgid "Notifications will load here" +msgstr "" + +#: templates/js/translated/order.js:48 +msgid "Hold Order" +msgstr "" + +#: templates/js/translated/order.js:53 +msgid "Are you sure you wish to place this order on hold?" +msgstr "" + +#: templates/js/translated/order.js:114 +msgid "Add Extra Line Item" +msgstr "" + +#: templates/js/translated/order.js:151 +msgid "Export Order" +msgstr "" + +#: templates/js/translated/order.js:266 +msgid "Duplicate Line" +msgstr "" + +#: templates/js/translated/order.js:280 +msgid "Edit Line" +msgstr "" + +#: templates/js/translated/order.js:293 +msgid "Delete Line" +msgstr "" + +#: templates/js/translated/order.js:306 +#: templates/js/translated/purchase_order.js:2060 +msgid "No line items found" +msgstr "" + +#: templates/js/translated/order.js:394 +msgid "Duplicate line" +msgstr "" + +#: templates/js/translated/order.js:395 +msgid "Edit line" +msgstr "" + +#: templates/js/translated/order.js:399 +msgid "Delete line" +msgstr "" + +#: templates/js/translated/part.js:91 +msgid "Part Attributes" +msgstr "" + +#: templates/js/translated/part.js:95 +msgid "Part Creation Options" +msgstr "" + +#: templates/js/translated/part.js:99 +msgid "Part Duplication Options" +msgstr "" + +#: templates/js/translated/part.js:122 +msgid "Add Part Category" +msgstr "" + +#: templates/js/translated/part.js:334 templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:182 +msgid "Icon (optional) - Explore all available icons on" +msgstr "" + +#: templates/js/translated/part.js:355 +msgid "Create Part Category" +msgstr "" + +#: templates/js/translated/part.js:358 +msgid "Create new category after this one" +msgstr "" + +#: templates/js/translated/part.js:359 +msgid "Part category created" +msgstr "" + +#: templates/js/translated/part.js:373 +msgid "Edit Part Category" +msgstr "" + +#: templates/js/translated/part.js:386 +msgid "Are you sure you want to delete this part category?" +msgstr "" + +#: templates/js/translated/part.js:391 +msgid "Move to parent category" +msgstr "" + +#: templates/js/translated/part.js:400 +msgid "Delete Part Category" +msgstr "" + +#: templates/js/translated/part.js:404 +msgid "Action for parts in this category" +msgstr "" + +#: templates/js/translated/part.js:409 +msgid "Action for child categories" +msgstr "" + +#: templates/js/translated/part.js:433 +msgid "Create Part" +msgstr "" + +#: templates/js/translated/part.js:435 +msgid "Create another part after this one" +msgstr "" + +#: templates/js/translated/part.js:436 +msgid "Part created successfully" +msgstr "" + +#: templates/js/translated/part.js:464 +msgid "Edit Part" +msgstr "" + +#: templates/js/translated/part.js:466 +msgid "Part edited" +msgstr "" + +#: templates/js/translated/part.js:477 +msgid "Create Part Variant" +msgstr "" + +#: templates/js/translated/part.js:534 +msgid "Active Part" +msgstr "" + +#: templates/js/translated/part.js:535 +msgid "Part cannot be deleted as it is currently active" +msgstr "" + +#: templates/js/translated/part.js:549 +msgid "Deleting this part cannot be reversed" +msgstr "" + +#: templates/js/translated/part.js:551 +msgid "Any stock items for this part will be deleted" +msgstr "" + +#: templates/js/translated/part.js:552 +msgid "This part will be removed from any Bills of Material" +msgstr "" + +#: templates/js/translated/part.js:553 +msgid "All manufacturer and supplier information for this part will be deleted" +msgstr "" + +#: templates/js/translated/part.js:560 +msgid "Delete Part" +msgstr "" + +#: templates/js/translated/part.js:596 +msgid "You are subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:598 +msgid "You have subscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:603 +msgid "Subscribe to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:605 +msgid "You have unsubscribed to notifications for this item" +msgstr "" + +#: templates/js/translated/part.js:622 +msgid "Validating the BOM will mark each line item as valid" +msgstr "" + +#: templates/js/translated/part.js:632 +msgid "Validate Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:635 +msgid "Validated Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:660 +msgid "Copy Bill of Materials" +msgstr "" + +#: templates/js/translated/part.js:688 +#: templates/js/translated/table_filters.js:755 +msgid "Low stock" +msgstr "" + +#: templates/js/translated/part.js:691 +msgid "No stock available" +msgstr "" + +#: templates/js/translated/part.js:751 +msgid "Demand" +msgstr "" + +#: templates/js/translated/part.js:774 +msgid "Unit" +msgstr "" + +#: templates/js/translated/part.js:797 templates/js/translated/part.js:1213 +msgid "Virtual part" +msgstr "" + +#: templates/js/translated/part.js:809 +msgid "Subscribed part" +msgstr "" + +#: templates/js/translated/part.js:813 +msgid "Salable part" +msgstr "" + +#: templates/js/translated/part.js:896 +msgid "Schedule generation of a new stocktake report." +msgstr "" + +#: templates/js/translated/part.js:896 +msgid "Once complete, the stocktake report will be available for download." +msgstr "" + +#: templates/js/translated/part.js:904 +msgid "Generate Stocktake Report" +msgstr "" + +#: templates/js/translated/part.js:908 +msgid "Stocktake report scheduled" +msgstr "" + +#: templates/js/translated/part.js:1057 +msgid "No stocktake information available" +msgstr "" + +#: templates/js/translated/part.js:1115 templates/js/translated/part.js:1151 +msgid "Edit Stocktake Entry" +msgstr "" + +#: templates/js/translated/part.js:1119 templates/js/translated/part.js:1161 +msgid "Delete Stocktake Entry" +msgstr "" + +#: templates/js/translated/part.js:1288 +msgid "No variants found" +msgstr "" + +#: templates/js/translated/part.js:1606 +msgid "No part parameter templates found" +msgstr "" + +#: templates/js/translated/part.js:1669 +msgid "Edit Part Parameter Template" +msgstr "" + +#: templates/js/translated/part.js:1681 +msgid "Any parameters which reference this template will also be deleted" +msgstr "" + +#: templates/js/translated/part.js:1689 +msgid "Delete Part Parameter Template" +msgstr "" + +#: templates/js/translated/part.js:1723 +#: templates/js/translated/purchase_order.js:1724 +msgid "No purchase orders found" +msgstr "" + +#: templates/js/translated/part.js:1867 +#: templates/js/translated/purchase_order.js:2223 +#: templates/js/translated/return_order.js:754 +#: templates/js/translated/sales_order.js:1911 +msgid "This line item is overdue" +msgstr "" + +#: templates/js/translated/part.js:1913 +#: templates/js/translated/purchase_order.js:2290 +msgid "Receive line item" +msgstr "" + +#: templates/js/translated/part.js:1976 +msgid "Delete part relationship" +msgstr "" + +#: templates/js/translated/part.js:1998 +msgid "Delete Part Relationship" +msgstr "" + +#: templates/js/translated/part.js:2086 templates/js/translated/part.js:2525 +msgid "No parts found" +msgstr "" + +#: templates/js/translated/part.js:2207 +msgid "Set the part category for the selected parts" +msgstr "" + +#: templates/js/translated/part.js:2212 +msgid "Set Part Category" +msgstr "" + +#: templates/js/translated/part.js:2241 +msgid "Set category" +msgstr "" + +#: templates/js/translated/part.js:2293 +msgid "part" +msgstr "" + +#: templates/js/translated/part.js:2294 +msgid "parts" +msgstr "" + +#: templates/js/translated/part.js:2390 +msgid "No category" +msgstr "" + +#: templates/js/translated/part.js:2550 templates/js/translated/part.js:2680 +#: templates/js/translated/stock.js:2755 +msgid "Display as list" +msgstr "" + +#: templates/js/translated/part.js:2566 +msgid "Display as grid" +msgstr "" + +#: templates/js/translated/part.js:2664 +msgid "No subcategories found" +msgstr "" + +#: templates/js/translated/part.js:2700 templates/js/translated/stock.js:2775 +msgid "Display as tree" +msgstr "" + +#: templates/js/translated/part.js:2780 +msgid "Load Subcategories" +msgstr "" + +#: templates/js/translated/part.js:2795 +msgid "Subscribed category" +msgstr "" + +#: templates/js/translated/part.js:2883 +msgid "No test templates matching query" +msgstr "" + +#: templates/js/translated/part.js:2905 templates/js/translated/search.js:342 +msgid "results" +msgstr "" + +#: templates/js/translated/part.js:2955 +msgid "Edit test template" +msgstr "" + +#: templates/js/translated/part.js:2956 +msgid "Delete test template" +msgstr "" + +#: templates/js/translated/part.js:2960 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/translated/part.js:2976 +msgid "Edit Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:2990 +msgid "Delete Test Result Template" +msgstr "" + +#: templates/js/translated/part.js:3069 templates/js/translated/part.js:3070 +msgid "No date specified" +msgstr "" + +#: templates/js/translated/part.js:3072 +msgid "Specified date is in the past" +msgstr "" + +#: templates/js/translated/part.js:3078 +msgid "Speculative" +msgstr "" + +#: templates/js/translated/part.js:3128 +msgid "No scheduling information available for this part" +msgstr "" + +#: templates/js/translated/part.js:3134 +msgid "Error fetching scheduling information for this part" +msgstr "" + +#: templates/js/translated/part.js:3230 +msgid "Scheduled Stock Quantities" +msgstr "" + +#: templates/js/translated/part.js:3246 +msgid "Maximum Quantity" +msgstr "" + +#: templates/js/translated/part.js:3291 +msgid "Minimum Stock Level" +msgstr "" + +#: templates/js/translated/plugin.js:46 +msgid "No plugins found" +msgstr "" + +#: templates/js/translated/plugin.js:58 +msgid "This plugin is no longer installed" +msgstr "" + +#: templates/js/translated/plugin.js:60 +msgid "This plugin is active" +msgstr "" + +#: templates/js/translated/plugin.js:62 +msgid "This plugin is installed but not active" +msgstr "" + +#: templates/js/translated/plugin.js:117 templates/js/translated/plugin.js:186 +msgid "Disable Plugin" +msgstr "" + +#: templates/js/translated/plugin.js:119 templates/js/translated/plugin.js:186 +msgid "Enable Plugin" +msgstr "" + +#: templates/js/translated/plugin.js:158 +msgid "The Plugin was installed" +msgstr "" + +#: templates/js/translated/plugin.js:177 +msgid "Are you sure you want to enable this plugin?" +msgstr "" + +#: templates/js/translated/plugin.js:181 +msgid "Are you sure you want to disable this plugin?" +msgstr "" + +#: templates/js/translated/plugin.js:189 +msgid "Enable" +msgstr "" + +#: templates/js/translated/plugin.js:189 +msgid "Disable" +msgstr "" + +#: templates/js/translated/plugin.js:203 +msgid "Plugin updated" +msgstr "" + +#: templates/js/translated/pricing.js:159 +msgid "Error fetching currency data" +msgstr "" + +#: templates/js/translated/pricing.js:321 +msgid "No BOM data available" +msgstr "" + +#: templates/js/translated/pricing.js:463 +msgid "No supplier pricing data available" +msgstr "" + +#: templates/js/translated/pricing.js:572 +msgid "No price break data available" +msgstr "" + +#: templates/js/translated/pricing.js:755 +msgid "No purchase history data available" +msgstr "" + +#: templates/js/translated/pricing.js:791 +msgid "Purchase Price History" +msgstr "" + +#: templates/js/translated/pricing.js:894 +msgid "No sales history data available" +msgstr "" + +#: templates/js/translated/pricing.js:916 +msgid "Sale Price History" +msgstr "" + +#: templates/js/translated/pricing.js:1005 +msgid "No variant data available" +msgstr "" + +#: templates/js/translated/pricing.js:1045 +msgid "Variant Part" +msgstr "" + +#: templates/js/translated/purchase_order.js:169 +msgid "Select purchase order to duplicate" +msgstr "" + +#: templates/js/translated/purchase_order.js:176 +msgid "Duplicate Line Items" +msgstr "" + +#: templates/js/translated/purchase_order.js:177 +msgid "Duplicate all line items from the selected order" +msgstr "" + +#: templates/js/translated/purchase_order.js:184 +msgid "Duplicate Extra Lines" +msgstr "" + +#: templates/js/translated/purchase_order.js:185 +msgid "Duplicate extra line items from the selected order" +msgstr "" + +#: templates/js/translated/purchase_order.js:206 +msgid "Edit Purchase Order" +msgstr "" + +#: templates/js/translated/purchase_order.js:223 +msgid "Duplication Options" +msgstr "" + +#: templates/js/translated/purchase_order.js:431 +msgid "Complete Purchase Order" +msgstr "" + +#: templates/js/translated/purchase_order.js:448 +#: templates/js/translated/return_order.js:210 +#: templates/js/translated/sales_order.js:552 +msgid "Mark this order as complete?" +msgstr "" + +#: templates/js/translated/purchase_order.js:454 +msgid "All line items have been received" +msgstr "" + +#: templates/js/translated/purchase_order.js:459 +msgid "This order has line items which have not been marked as received." +msgstr "" + +#: templates/js/translated/purchase_order.js:460 +msgid "Completing this order means that the order and line items will no longer be editable." +msgstr "" + +#: templates/js/translated/purchase_order.js:483 +msgid "Cancel Purchase Order" +msgstr "" + +#: templates/js/translated/purchase_order.js:488 +msgid "Are you sure you wish to cancel this purchase order?" +msgstr "" + +#: templates/js/translated/purchase_order.js:494 +msgid "This purchase order can not be cancelled" +msgstr "" + +#: templates/js/translated/purchase_order.js:515 +#: templates/js/translated/return_order.js:164 +msgid "After placing this order, line items will no longer be editable." +msgstr "" + +#: templates/js/translated/purchase_order.js:520 +msgid "Issue Purchase Order" +msgstr "" + +#: templates/js/translated/purchase_order.js:612 +msgid "At least one purchaseable part must be selected" +msgstr "" + +#: templates/js/translated/purchase_order.js:637 +msgid "Quantity to order" +msgstr "" + +#: templates/js/translated/purchase_order.js:646 +msgid "New supplier part" +msgstr "" + +#: templates/js/translated/purchase_order.js:664 +msgid "New purchase order" +msgstr "" + +#: templates/js/translated/purchase_order.js:705 +msgid "Add to purchase order" +msgstr "" + +#: templates/js/translated/purchase_order.js:755 +msgid "Merge" +msgstr "" + +#: templates/js/translated/purchase_order.js:859 +msgid "No matching supplier parts" +msgstr "" + +#: templates/js/translated/purchase_order.js:878 +msgid "No matching purchase orders" +msgstr "" + +#: templates/js/translated/purchase_order.js:1073 +#: templates/js/translated/return_order.js:490 +msgid "Select Line Items" +msgstr "" + +#: templates/js/translated/purchase_order.js:1074 +#: templates/js/translated/return_order.js:491 +msgid "At least one line item must be selected" +msgstr "" + +#: templates/js/translated/purchase_order.js:1104 +msgid "Received Quantity" +msgstr "" + +#: templates/js/translated/purchase_order.js:1115 +msgid "Quantity to receive" +msgstr "" + +#: templates/js/translated/purchase_order.js:1170 +#: templates/js/translated/stock.js:1215 +msgid "Specify packaging for incoming stock items" +msgstr "" + +#: templates/js/translated/purchase_order.js:1223 +msgid "Stock Status" +msgstr "" + +#: templates/js/translated/purchase_order.js:1237 +msgid "Add barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1238 +msgid "Remove barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1241 +msgid "Specify location" +msgstr "" + +#: templates/js/translated/purchase_order.js:1249 +msgid "Add batch code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1259 +msgid "Specify packaging" +msgstr "" + +#: templates/js/translated/purchase_order.js:1270 +msgid "Add serial numbers" +msgstr "" + +#: templates/js/translated/purchase_order.js:1281 +msgid "Add note" +msgstr "" + +#: templates/js/translated/purchase_order.js:1338 +msgid "Serials" +msgstr "" + +#: templates/js/translated/purchase_order.js:1368 +msgid "Order Code" +msgstr "" + +#: templates/js/translated/purchase_order.js:1370 +msgid "Quantity to Receive" +msgstr "" + +#: templates/js/translated/purchase_order.js:1395 +#: templates/js/translated/return_order.js:559 +msgid "Confirm receipt of items" +msgstr "" + +#: templates/js/translated/purchase_order.js:1396 +msgid "Receive Purchase Order Items" +msgstr "" + +#: templates/js/translated/purchase_order.js:1464 +msgid "Scan Item Barcode" +msgstr "" + +#: templates/js/translated/purchase_order.js:1465 +msgid "Scan barcode on incoming item (must not match any existing stock items)" +msgstr "" + +#: templates/js/translated/purchase_order.js:1479 +msgid "Invalid barcode data" +msgstr "" + +#: templates/js/translated/purchase_order.js:1751 +#: templates/js/translated/return_order.js:285 +#: templates/js/translated/sales_order.js:810 +#: templates/js/translated/sales_order.js:1034 +msgid "Order is overdue" +msgstr "" + +#: templates/js/translated/purchase_order.js:1913 +msgid "All selected Line items will be deleted" +msgstr "" + +#: templates/js/translated/purchase_order.js:1931 +msgid "Delete selected Line items?" +msgstr "" + +#: templates/js/translated/purchase_order.js:1986 +#: templates/js/translated/sales_order.js:2106 +msgid "Duplicate Line Item" +msgstr "" + +#: templates/js/translated/purchase_order.js:2001 +#: templates/js/translated/return_order.js:475 +#: templates/js/translated/return_order.js:667 +#: templates/js/translated/sales_order.js:2119 +msgid "Edit Line Item" +msgstr "" + +#: templates/js/translated/purchase_order.js:2012 +#: templates/js/translated/return_order.js:680 +#: templates/js/translated/sales_order.js:2130 +msgid "Delete Line Item" +msgstr "" + +#: templates/js/translated/purchase_order.js:2294 +#: templates/js/translated/sales_order.js:2060 +msgid "Duplicate line item" +msgstr "" + +#: templates/js/translated/purchase_order.js:2295 +#: templates/js/translated/return_order.js:799 +#: templates/js/translated/sales_order.js:2061 +msgid "Edit line item" +msgstr "" + +#: templates/js/translated/purchase_order.js:2296 +#: templates/js/translated/return_order.js:803 +#: templates/js/translated/sales_order.js:2067 +msgid "Delete line item" +msgstr "" + +#: templates/js/translated/report.js:68 +msgid "Report print successful" +msgstr "" + +#: templates/js/translated/report.js:73 +msgid "Report printing failed" +msgstr "" + +#: templates/js/translated/return_order.js:60 +#: templates/js/translated/sales_order.js:86 +msgid "Add Customer" +msgstr "" + +#: templates/js/translated/return_order.js:134 +msgid "Create Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:149 +msgid "Edit Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:169 +msgid "Issue Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:186 +msgid "Are you sure you wish to cancel this Return Order?" +msgstr "" + +#: templates/js/translated/return_order.js:193 +msgid "Cancel Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:218 +msgid "Complete Return Order" +msgstr "" + +#: templates/js/translated/return_order.js:265 +msgid "No return orders found" +msgstr "" + +#: templates/js/translated/return_order.js:299 +#: templates/js/translated/sales_order.js:824 +msgid "Invalid Customer" +msgstr "" + +#: templates/js/translated/return_order.js:560 +msgid "Receive Return Order Items" +msgstr "" + +#: templates/js/translated/return_order.js:691 +#: templates/js/translated/sales_order.js:2267 +msgid "No matching line items" +msgstr "" + +#: templates/js/translated/return_order.js:796 +msgid "Mark item as received" +msgstr "" + +#: templates/js/translated/sales_order.js:161 +msgid "Create Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:176 +msgid "Edit Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:291 +msgid "No stock items have been allocated to this shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:296 +msgid "The following stock items will be shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:336 +msgid "Complete Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:360 +msgid "Confirm Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:416 +msgid "No pending shipments found" +msgstr "" + +#: templates/js/translated/sales_order.js:420 +msgid "No stock items have been allocated to pending shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:430 +msgid "Complete Shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:452 +msgid "Skip" +msgstr "" + +#: templates/js/translated/sales_order.js:484 +msgid "Ship Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:500 +msgid "Ship this order?" +msgstr "" + +#: templates/js/translated/sales_order.js:506 +msgid "Order cannot be shipped as there are incomplete shipments" +msgstr "" + +#: templates/js/translated/sales_order.js:513 +msgid "This order has line items which have not been completed." +msgstr "" + +#: templates/js/translated/sales_order.js:514 +msgid "Shipping this order means that the order and line items will no longer be editable." +msgstr "" + +#: templates/js/translated/sales_order.js:572 +msgid "Issue this Sales Order?" +msgstr "" + +#: templates/js/translated/sales_order.js:577 +msgid "Issue Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:596 +msgid "Cancel Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:601 +msgid "Cancelling this order means that the order will no longer be editable." +msgstr "" + +#: templates/js/translated/sales_order.js:655 +msgid "Create New Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:764 +msgid "No sales orders found" +msgstr "" + +#: templates/js/translated/sales_order.js:944 +msgid "Edit shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:947 +msgid "Complete shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:952 +msgid "Delete shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:969 +msgid "Edit Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:984 +msgid "Delete Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:1017 +msgid "No matching shipments found" +msgstr "" + +#: templates/js/translated/sales_order.js:1042 +msgid "Shipment Reference" +msgstr "" + +#: templates/js/translated/sales_order.js:1066 +#: templates/js/translated/sales_order.js:1565 +msgid "Not shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:1084 +msgid "Tracking" +msgstr "" + +#: templates/js/translated/sales_order.js:1088 +msgid "Invoice" +msgstr "" + +#: templates/js/translated/sales_order.js:1255 +msgid "Add Shipment" +msgstr "" + +#: templates/js/translated/sales_order.js:1306 +msgid "Confirm stock allocation" +msgstr "" + +#: templates/js/translated/sales_order.js:1307 +msgid "Allocate Stock Items to Sales Order" +msgstr "" + +#: templates/js/translated/sales_order.js:1513 +msgid "No sales order allocations found" +msgstr "" + +#: templates/js/translated/sales_order.js:1605 +msgid "Edit Stock Allocation" +msgstr "" + +#: templates/js/translated/sales_order.js:1619 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/sales_order.js:1620 +msgid "Delete Stock Allocation" +msgstr "" + +#: templates/js/translated/sales_order.js:1659 +#: templates/js/translated/sales_order.js:1746 +#: templates/js/translated/stock.js:1861 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/sales_order.js:1667 +#: templates/js/translated/sales_order.js:1755 +msgid "Stock location not specified" +msgstr "" + +#: templates/js/translated/sales_order.js:2044 +msgid "Allocate serial numbers" +msgstr "" + +#: templates/js/translated/sales_order.js:2048 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/sales_order.js:2057 +#: templates/js/translated/sales_order.js:2245 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/sales_order.js:2071 +msgid "Cannot be deleted as items have been shipped" +msgstr "" + +#: templates/js/translated/sales_order.js:2074 +msgid "Cannot be deleted as items have been allocated" +msgstr "" + +#: templates/js/translated/sales_order.js:2145 +msgid "Allocate Serial Numbers" +msgstr "" + +#: templates/js/translated/sales_order.js:2253 +msgid "Update Unit Price" +msgstr "" + +#: templates/js/translated/search.js:270 +msgid "No results" +msgstr "" + +#: templates/js/translated/search.js:292 templates/search.html:25 +msgid "Enter search query" +msgstr "" + +#: templates/js/translated/search.js:342 +msgid "result" +msgstr "" + +#: templates/js/translated/search.js:352 +msgid "Minimize results" +msgstr "" + +#: templates/js/translated/search.js:355 +msgid "Remove results" +msgstr "" + +#: templates/js/translated/stock.js:106 +msgid "Serialize Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:137 +msgid "Confirm Stock Serialization" +msgstr "" + +#: templates/js/translated/stock.js:173 +msgid "Add Location type" +msgstr "" + +#: templates/js/translated/stock.js:209 +msgid "Edit Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:224 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:226 +msgid "Create another location after this one" +msgstr "" + +#: templates/js/translated/stock.js:227 +msgid "Stock location created" +msgstr "" + +#: templates/js/translated/stock.js:241 +msgid "Are you sure you want to delete this stock location?" +msgstr "" + +#: templates/js/translated/stock.js:248 +msgid "Move to parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:257 +msgid "Delete Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:261 +msgid "Action for stock items in this stock location" +msgstr "" + +#: templates/js/translated/stock.js:266 +msgid "Action for sub-locations" +msgstr "" + +#: templates/js/translated/stock.js:320 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:356 +msgid "Add given quantity as packs instead of individual items" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:374 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:445 +msgid "Stock item duplicated" +msgstr "" + +#: templates/js/translated/stock.js:465 +msgid "Duplicate Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:481 +msgid "Are you sure you want to delete this stock item?" +msgstr "" + +#: templates/js/translated/stock.js:486 +msgid "Delete Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:507 +msgid "Edit Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:549 +msgid "Create another item after this one" +msgstr "" + +#: templates/js/translated/stock.js:561 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:574 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:599 +msgid "Find Serial Number" +msgstr "" + +#: templates/js/translated/stock.js:603 templates/js/translated/stock.js:604 +msgid "Enter serial number" +msgstr "" + +#: templates/js/translated/stock.js:620 +msgid "Enter a serial number" +msgstr "" + +#: templates/js/translated/stock.js:640 +msgid "No matching serial number" +msgstr "" + +#: templates/js/translated/stock.js:649 +msgid "More than one matching result found" +msgstr "" + +#: templates/js/translated/stock.js:757 +msgid "Confirm stock assignment" +msgstr "" + +#: templates/js/translated/stock.js:758 +msgid "Assign Stock to Customer" +msgstr "" + +#: templates/js/translated/stock.js:835 +msgid "Warning: Merge operation cannot be reversed" +msgstr "" + +#: templates/js/translated/stock.js:836 +msgid "Some information will be lost when merging stock items" +msgstr "" + +#: templates/js/translated/stock.js:838 +msgid "Stock transaction history will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:839 +msgid "Supplier part information will be deleted for merged items" +msgstr "" + +#: templates/js/translated/stock.js:933 +msgid "Confirm stock item merge" +msgstr "" + +#: templates/js/translated/stock.js:934 +msgid "Merge Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:1031 +msgid "Transfer Stock" +msgstr "" + +#: templates/js/translated/stock.js:1032 +msgid "Move" +msgstr "" + +#: templates/js/translated/stock.js:1038 +msgid "Count Stock" +msgstr "" + +#: templates/js/translated/stock.js:1039 +msgid "Count" +msgstr "" + +#: templates/js/translated/stock.js:1043 +msgid "Remove Stock" +msgstr "" + +#: templates/js/translated/stock.js:1044 +msgid "Take" +msgstr "" + +#: templates/js/translated/stock.js:1048 +msgid "Add Stock" +msgstr "" + +#: templates/js/translated/stock.js:1049 users/models.py:397 +msgid "Add" +msgstr "" + +#: templates/js/translated/stock.js:1053 +msgid "Delete Stock" +msgstr "" + +#: templates/js/translated/stock.js:1152 +msgid "Quantity cannot be adjusted for serialized stock" +msgstr "" + +#: templates/js/translated/stock.js:1152 +msgid "Specify stock quantity" +msgstr "" + +#: templates/js/translated/stock.js:1168 +msgid "Adjust batch code" +msgstr "" + +#: templates/js/translated/stock.js:1178 +msgid "Adjust packaging" +msgstr "" + +#: templates/js/translated/stock.js:1256 templates/js/translated/stock.js:3383 +msgid "Select Stock Items" +msgstr "" + +#: templates/js/translated/stock.js:1257 +msgid "Select at least one available stock item" +msgstr "" + +#: templates/js/translated/stock.js:1303 +msgid "Confirm stock adjustment" +msgstr "" + +#: templates/js/translated/stock.js:1448 +msgid "PASS" +msgstr "" + +#: templates/js/translated/stock.js:1450 +msgid "FAIL" +msgstr "" + +#: templates/js/translated/stock.js:1455 +msgid "NO RESULT" +msgstr "" + +#: templates/js/translated/stock.js:1535 +msgid "Pass test" +msgstr "" + +#: templates/js/translated/stock.js:1538 +msgid "Add test result" +msgstr "" + +#: templates/js/translated/stock.js:1541 +msgid "Edit test result" +msgstr "" + +#: templates/js/translated/stock.js:1542 templates/js/translated/stock.js:1816 +msgid "Delete test result" +msgstr "" + +#: templates/js/translated/stock.js:1561 +msgid "No test results found" +msgstr "" + +#: templates/js/translated/stock.js:1625 +msgid "Test Date" +msgstr "" + +#: templates/js/translated/stock.js:1638 +msgid "Test started" +msgstr "" + +#: templates/js/translated/stock.js:1647 +msgid "Test finished" +msgstr "" + +#: templates/js/translated/stock.js:1801 +msgid "Edit Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1821 +msgid "Delete Test Result" +msgstr "" + +#: templates/js/translated/stock.js:1853 +msgid "In production" +msgstr "" + +#: templates/js/translated/stock.js:1857 +msgid "Installed in Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:1865 +msgid "Assigned to Sales Order" +msgstr "" + +#: templates/js/translated/stock.js:1871 +msgid "No stock location set" +msgstr "" + +#: templates/js/translated/stock.js:1928 +msgid "Change stock status" +msgstr "" + +#: templates/js/translated/stock.js:1937 +msgid "Merge stock" +msgstr "" + +#: templates/js/translated/stock.js:1986 +msgid "Delete stock" +msgstr "" + +#: templates/js/translated/stock.js:2039 +msgid "stock items" +msgstr "" + +#: templates/js/translated/stock.js:2044 +msgid "Scan to location" +msgstr "" + +#: templates/js/translated/stock.js:2055 +msgid "Stock Actions" +msgstr "" + +#: templates/js/translated/stock.js:2099 +msgid "Load installed items" +msgstr "" + +#: templates/js/translated/stock.js:2177 +msgid "Stock item is in production" +msgstr "" + +#: templates/js/translated/stock.js:2182 +msgid "Stock item assigned to sales order" +msgstr "" + +#: templates/js/translated/stock.js:2185 +msgid "Stock item assigned to customer" +msgstr "" + +#: templates/js/translated/stock.js:2188 +msgid "Serialized stock item has been allocated" +msgstr "" + +#: templates/js/translated/stock.js:2190 +msgid "Stock item has been fully allocated" +msgstr "" + +#: templates/js/translated/stock.js:2192 +msgid "Stock item has been partially allocated" +msgstr "" + +#: templates/js/translated/stock.js:2195 +msgid "Stock item has been installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:2197 +msgid "Stock item has been consumed by a build order" +msgstr "" + +#: templates/js/translated/stock.js:2201 +msgid "Stock item has expired" +msgstr "" + +#: templates/js/translated/stock.js:2203 +msgid "Stock item will expire soon" +msgstr "" + +#: templates/js/translated/stock.js:2208 +msgid "Stock item has been rejected" +msgstr "" + +#: templates/js/translated/stock.js:2210 +msgid "Stock item is lost" +msgstr "" + +#: templates/js/translated/stock.js:2212 +msgid "Stock item is destroyed" +msgstr "" + +#: templates/js/translated/stock.js:2216 +#: templates/js/translated/table_filters.js:357 +msgid "Depleted" +msgstr "" + +#: templates/js/translated/stock.js:2381 +msgid "Supplier part not specified" +msgstr "" + +#: templates/js/translated/stock.js:2428 +msgid "Stock Value" +msgstr "" + +#: templates/js/translated/stock.js:2556 +msgid "No stock items matching query" +msgstr "" + +#: templates/js/translated/stock.js:2659 +msgid "stock locations" +msgstr "" + +#: templates/js/translated/stock.js:2814 +msgid "Load Sublocations" +msgstr "" + +#: templates/js/translated/stock.js:2931 +msgid "Details" +msgstr "" + +#: templates/js/translated/stock.js:2935 +msgid "No changes" +msgstr "" + +#: templates/js/translated/stock.js:2947 +msgid "Part information unavailable" +msgstr "" + +#: templates/js/translated/stock.js:2969 +msgid "Location no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:2986 +msgid "Build order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3001 +msgid "Purchase order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3018 +msgid "Sales Order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3035 +msgid "Return Order no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3054 +msgid "Customer no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3072 +msgid "Stock item no longer exists" +msgstr "" + +#: templates/js/translated/stock.js:3090 +msgid "Added" +msgstr "" + +#: templates/js/translated/stock.js:3098 +msgid "Removed" +msgstr "" + +#: templates/js/translated/stock.js:3170 +msgid "No installed items" +msgstr "" + +#: templates/js/translated/stock.js:3224 templates/js/translated/stock.js:3260 +msgid "Uninstall Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:3281 +msgid "Select stock item to uninstall" +msgstr "" + +#: templates/js/translated/stock.js:3302 +msgid "Install another stock item into this item" +msgstr "" + +#: templates/js/translated/stock.js:3303 +msgid "Stock items can only be installed if they meet the following criteria" +msgstr "" + +#: templates/js/translated/stock.js:3305 +msgid "The Stock Item links to a Part which is the BOM for this Stock Item" +msgstr "" + +#: templates/js/translated/stock.js:3306 +msgid "The Stock Item is currently available in stock" +msgstr "" + +#: templates/js/translated/stock.js:3307 +msgid "The Stock Item is not already installed in another item" +msgstr "" + +#: templates/js/translated/stock.js:3308 +msgid "The Stock Item is tracked by either a batch code or serial number" +msgstr "" + +#: templates/js/translated/stock.js:3321 +msgid "Select part to install" +msgstr "" + +#: templates/js/translated/stock.js:3384 +msgid "Select one or more stock items" +msgstr "" + +#: templates/js/translated/stock.js:3397 +msgid "Selected stock items" +msgstr "" + +#: templates/js/translated/stock.js:3401 +msgid "Change Stock Status" +msgstr "" + +#: templates/js/translated/stock.js:3478 +msgid "This week" +msgstr "" + +#: templates/js/translated/stock.js:3486 +msgid "This month" +msgstr "" + +#: templates/js/translated/table_filters.js:73 +msgid "Has project code" +msgstr "" + +#: templates/js/translated/table_filters.js:88 +#: templates/js/translated/table_filters.js:608 +#: templates/js/translated/table_filters.js:620 +#: templates/js/translated/table_filters.js:661 +msgid "Order status" +msgstr "" + +#: templates/js/translated/table_filters.js:161 +msgid "Testable Part" +msgstr "" + +#: templates/js/translated/table_filters.js:165 +msgid "Trackable Part" +msgstr "" + +#: templates/js/translated/table_filters.js:169 +msgid "Assembled Part" +msgstr "" + +#: templates/js/translated/table_filters.js:173 +msgid "Has Available Stock" +msgstr "" + +#: templates/js/translated/table_filters.js:189 +msgid "Allow Variant Stock" +msgstr "" + +#: templates/js/translated/table_filters.js:241 +#: templates/js/translated/table_filters.js:352 +msgid "Include sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:242 +msgid "Include locations" +msgstr "" + +#: templates/js/translated/table_filters.js:274 +msgid "Has location type" +msgstr "" + +#: templates/js/translated/table_filters.js:285 +#: templates/js/translated/table_filters.js:286 +#: templates/js/translated/table_filters.js:714 +msgid "Include subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:294 +#: templates/js/translated/table_filters.js:767 +msgid "Subscribed" +msgstr "" + +#: templates/js/translated/table_filters.js:305 +#: templates/js/translated/table_filters.js:387 +msgid "Is Serialized" +msgstr "" + +#: templates/js/translated/table_filters.js:308 +#: templates/js/translated/table_filters.js:394 +msgid "Serial number GTE" +msgstr "" + +#: templates/js/translated/table_filters.js:309 +#: templates/js/translated/table_filters.js:395 +msgid "Serial number greater than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:312 +#: templates/js/translated/table_filters.js:398 +msgid "Serial number LTE" +msgstr "" + +#: templates/js/translated/table_filters.js:313 +#: templates/js/translated/table_filters.js:399 +msgid "Serial number less than or equal to" +msgstr "" + +#: templates/js/translated/table_filters.js:316 +#: templates/js/translated/table_filters.js:317 +#: templates/js/translated/table_filters.js:390 +#: templates/js/translated/table_filters.js:391 +msgid "Serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:321 +#: templates/js/translated/table_filters.js:412 +msgid "Batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:332 +#: templates/js/translated/table_filters.js:703 +msgid "Active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:333 +msgid "Show stock for active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:338 +msgid "Part is an assembly" +msgstr "" + +#: templates/js/translated/table_filters.js:342 +msgid "Is allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:343 +msgid "Item has been allocated" +msgstr "" + +#: templates/js/translated/table_filters.js:348 +msgid "Stock is available for use" +msgstr "" + +#: templates/js/translated/table_filters.js:353 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/translated/table_filters.js:358 +msgid "Show stock items which are depleted" +msgstr "" + +#: templates/js/translated/table_filters.js:363 +msgid "Show items which are in stock" +msgstr "" + +#: templates/js/translated/table_filters.js:368 +msgid "Show items which are in production" +msgstr "" + +#: templates/js/translated/table_filters.js:372 +msgid "Include Variants" +msgstr "" + +#: templates/js/translated/table_filters.js:373 +msgid "Include stock items for variant parts" +msgstr "" + +#: templates/js/translated/table_filters.js:378 +msgid "Show stock items which are installed in another item" +msgstr "" + +#: templates/js/translated/table_filters.js:383 +msgid "Show items which have been assigned to a customer" +msgstr "" + +#: templates/js/translated/table_filters.js:403 +#: templates/js/translated/table_filters.js:404 +msgid "Stock status" +msgstr "" + +#: templates/js/translated/table_filters.js:407 +msgid "Has batch code" +msgstr "" + +#: templates/js/translated/table_filters.js:416 +msgid "Stock item is tracked by either batch code or serial number" +msgstr "" + +#: templates/js/translated/table_filters.js:421 +msgid "Has purchase price" +msgstr "" + +#: templates/js/translated/table_filters.js:422 +msgid "Show stock items which have a purchase price set" +msgstr "" + +#: templates/js/translated/table_filters.js:426 +msgid "Expiry Date before" +msgstr "" + +#: templates/js/translated/table_filters.js:430 +msgid "Expiry Date after" +msgstr "" + +#: templates/js/translated/table_filters.js:443 +msgid "Show stock items which have expired" +msgstr "" + +#: templates/js/translated/table_filters.js:449 +msgid "Show stock which is close to expiring" +msgstr "" + +#: templates/js/translated/table_filters.js:463 +msgid "Test Passed" +msgstr "" + +#: templates/js/translated/table_filters.js:467 +msgid "Include Installed Items" +msgstr "" + +#: templates/js/translated/table_filters.js:478 +msgid "Interval start" +msgstr "" + +#: templates/js/translated/table_filters.js:482 +msgid "Interval end" +msgstr "" + +#: templates/js/translated/table_filters.js:536 +msgid "Build status" +msgstr "" + +#: templates/js/translated/table_filters.js:715 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/translated/table_filters.js:720 +msgid "Show active parts" +msgstr "" + +#: templates/js/translated/table_filters.js:725 +msgid "Show locked parts" +msgstr "" + +#: templates/js/translated/table_filters.js:733 +msgid "Available stock" +msgstr "" + +#: templates/js/translated/table_filters.js:741 +#: templates/js/translated/table_filters.js:845 +msgid "Has Units" +msgstr "" + +#: templates/js/translated/table_filters.js:742 +msgid "Part has defined units" +msgstr "" + +#: templates/js/translated/table_filters.js:746 +msgid "Has IPN" +msgstr "" + +#: templates/js/translated/table_filters.js:747 +msgid "Part has internal part number" +msgstr "" + +#: templates/js/translated/table_filters.js:751 +msgid "In stock" +msgstr "" + +#: templates/js/translated/table_filters.js:759 +msgid "Purchasable" +msgstr "" + +#: templates/js/translated/table_filters.js:771 +msgid "Has stocktake entries" +msgstr "" + +#: templates/js/translated/table_filters.js:841 +msgid "Has Choices" +msgstr "" + +#: templates/js/translated/tables.js:92 +msgid "Display calendar view" +msgstr "" + +#: templates/js/translated/tables.js:102 +msgid "Display list view" +msgstr "" + +#: templates/js/translated/tables.js:112 +msgid "Display tree view" +msgstr "" + +#: templates/js/translated/tables.js:130 +msgid "Expand all rows" +msgstr "" + +#: templates/js/translated/tables.js:136 +msgid "Collapse all rows" +msgstr "" + +#: templates/js/translated/tables.js:186 +msgid "Export Table Data" +msgstr "" + +#: templates/js/translated/tables.js:190 +msgid "Select File Format" +msgstr "" + +#: templates/js/translated/tables.js:529 +msgid "Loading data" +msgstr "" + +#: templates/js/translated/tables.js:532 +msgid "rows per page" +msgstr "" + +#: templates/js/translated/tables.js:537 +msgid "Showing all rows" +msgstr "" + +#: templates/js/translated/tables.js:539 +msgid "Showing" +msgstr "" + +#: templates/js/translated/tables.js:539 +msgid "to" +msgstr "" + +#: templates/js/translated/tables.js:539 +msgid "of" +msgstr "" + +#: templates/js/translated/tables.js:539 +msgid "rows" +msgstr "" + +#: templates/js/translated/tables.js:546 +msgid "No matching results" +msgstr "" + +#: templates/js/translated/tables.js:549 +msgid "Hide/Show pagination" +msgstr "" + +#: templates/js/translated/tables.js:555 +msgid "Toggle" +msgstr "" + +#: templates/js/translated/tables.js:561 +msgid "All" +msgstr "" + +#: templates/navbar.html:45 +msgid "Buy" +msgstr "" + +#: templates/navbar.html:57 +msgid "Sell" +msgstr "" + +#: templates/navbar.html:121 +msgid "Show Notifications" +msgstr "" + +#: templates/navbar.html:124 +msgid "New Notifications" +msgstr "" + +#: templates/navbar.html:144 users/models.py:201 +msgid "Admin" +msgstr "" + +#: templates/navbar.html:148 +msgid "Logout" +msgstr "" + +#: templates/notes_buttons.html:6 templates/notes_buttons.html:7 +msgid "Save" +msgstr "" + +#: templates/notifications.html:9 +msgid "Show all notifications and history" +msgstr "" + +#: templates/pui_banner.html:9 +msgid "Platform UI - the new UI for InvenTree - provides more modern administration options." +msgstr "" + +#: templates/pui_banner.html:12 +msgid "Platform UI - the new UI for InvenTree - is ready to be tested." +msgstr "" + +#: templates/pui_banner.html:15 +msgid "Try it out now" +msgstr "" + +#: templates/pui_banner.html:15 +msgid "here" +msgstr "" + +#: templates/qr_code.html:11 +msgid "QR data not provided" +msgstr "" + +#: templates/registration/logged_out.html:7 +msgid "You were logged out successfully." +msgstr "" + +#: templates/registration/logged_out.html:9 +msgid "Log in again" +msgstr "" + +#: templates/search.html:9 +msgid "Show full search results" +msgstr "" + +#: templates/search.html:12 +msgid "Clear search" +msgstr "" + +#: templates/search.html:15 +msgid "Close search menu" +msgstr "" + +#: templates/socialaccount/authentication_error.html:5 +msgid "Social Network Login Failure" +msgstr "" + +#: templates/socialaccount/authentication_error.html:8 +msgid "Account Login Failure" +msgstr "" + +#: templates/socialaccount/authentication_error.html:11 +msgid "An error occurred while attempting to login via your social network account." +msgstr "" + +#: templates/socialaccount/authentication_error.html:13 +msgid "Contact your system administrator for further information." +msgstr "" + +#: templates/socialaccount/login.html:13 +#, python-format +msgid "Connect %(provider)s" +msgstr "" + +#: templates/socialaccount/login.html:15 +#, python-format +msgid "You are about to connect a new third party account from %(provider)s." +msgstr "" + +#: templates/socialaccount/login.html:17 +#, python-format +msgid "Sign In Via %(provider)s" +msgstr "" + +#: templates/socialaccount/login.html:19 +#, python-format +msgid "You are about to sign in using a third party account from %(provider)s." +msgstr "" + +#: templates/socialaccount/login.html:24 +msgid "Continue" +msgstr "" + +#: templates/socialaccount/login.html:29 +msgid "Invalid SSO Provider" +msgstr "" + +#: templates/socialaccount/login.html:31 +msgid "The selected SSO provider is invalid, or has not been correctly configured" +msgstr "" + +#: templates/socialaccount/signup.html:11 +#, python-format +msgid "You are about to use your %(provider_name)s account to login to %(site_name)s." +msgstr "" + +#: templates/socialaccount/signup.html:13 +msgid "As a final step, please complete the following form" +msgstr "" + +#: templates/socialaccount/snippets/provider_list.html:26 +msgid "Provider has not been configured" +msgstr "" + +#: templates/socialaccount/snippets/provider_list.html:35 +msgid "No SSO providers have been configured" +msgstr "" + +#: templates/stats.html:13 +msgid "Instance Name" +msgstr "" + +#: templates/stats.html:18 +msgid "Database" +msgstr "" + +#: templates/stats.html:26 +msgid "Server is running in debug mode" +msgstr "" + +#: templates/stats.html:33 +msgid "Docker Mode" +msgstr "" + +#: templates/stats.html:34 +msgid "Server is deployed using docker" +msgstr "" + +#: templates/stats.html:39 +msgid "Plugin Support" +msgstr "" + +#: templates/stats.html:43 +msgid "Plugin support enabled" +msgstr "" + +#: templates/stats.html:45 +msgid "Plugin support disabled" +msgstr "" + +#: templates/stats.html:52 +msgid "Server status" +msgstr "" + +#: templates/stats.html:55 +msgid "Healthy" +msgstr "" + +#: templates/stats.html:57 +msgid "Issues detected" +msgstr "" + +#: templates/stats.html:64 +msgid "Background Worker" +msgstr "" + +#: templates/stats.html:67 +msgid "Background worker not running" +msgstr "" + +#: templates/stats.html:75 +msgid "Email Settings" +msgstr "" + +#: templates/stats.html:78 +msgid "Email settings not configured" +msgstr "" + +#: templates/test_statistics_table.html:13 +msgid "Passed" +msgstr "" + +#: templates/test_statistics_table.html:16 +msgid "Failed" +msgstr "" + +#: templates/yesnolabel.html:4 +msgid "Yes" +msgstr "" + +#: templates/yesnolabel.html:6 +msgid "No" +msgstr "" + +#: users/admin.py:101 +msgid "Users" +msgstr "" + +#: users/admin.py:102 +msgid "Select which users are assigned to this group" +msgstr "" + +#: users/admin.py:246 +msgid "The following users are members of multiple groups" +msgstr "" + +#: users/admin.py:280 +msgid "Personal info" +msgstr "" + +#: users/admin.py:282 +msgid "Permissions" +msgstr "" + +#: users/admin.py:285 +msgid "Important dates" +msgstr "" + +#: users/authentication.py:29 users/models.py:138 +msgid "Token has been revoked" +msgstr "" + +#: users/authentication.py:32 +msgid "Token has expired" +msgstr "" + +#: users/models.py:81 +msgid "API Token" +msgstr "" + +#: users/models.py:82 +msgid "API Tokens" +msgstr "" + +#: users/models.py:118 +msgid "Token Name" +msgstr "" + +#: users/models.py:119 +msgid "Custom token name" +msgstr "" + +#: users/models.py:125 +msgid "Token expiry date" +msgstr "" + +#: users/models.py:133 +msgid "Last Seen" +msgstr "" + +#: users/models.py:134 +msgid "Last time the token was used" +msgstr "" + +#: users/models.py:138 +msgid "Revoked" +msgstr "" + +#: users/models.py:380 +msgid "Permission set" +msgstr "" + +#: users/models.py:389 +msgid "Group" +msgstr "" + +#: users/models.py:393 +msgid "View" +msgstr "" + +#: users/models.py:393 +msgid "Permission to view items" +msgstr "" + +#: users/models.py:397 +msgid "Permission to add items" +msgstr "" + +#: users/models.py:401 +msgid "Change" +msgstr "" + +#: users/models.py:403 +msgid "Permissions to edit items" +msgstr "" + +#: users/models.py:409 +msgid "Permission to delete items" +msgstr "" + diff --git a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po index 1354bcb66d..39ac4f2c8c 100644 --- a/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/lv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Language: lv_LV\n" @@ -65,9 +65,9 @@ msgstr "Ievadiet datumu" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Attālais serveris atgrieza tukšu atbildi" msgid "Supplied URL is not a valid image file" msgstr "Norādītajā URL nav derīgs attēla fails" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgāru" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Čehu" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dāņu" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Vācu" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grieķu" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angļu" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spāņu" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spāņu (Meksikāņu)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persiešu" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Somu" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po index 90302d88b8..2aa16f19a8 100644 --- a/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/nl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -65,9 +65,9 @@ msgstr "Voer datum in" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Externe server heeft lege reactie teruggegeven" msgid "Supplied URL is not a valid image file" msgstr "Opgegeven URL is geen geldig afbeeldingsbestand" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabisch" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgaars" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tsjechisch" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Deens" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Duits" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grieks" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engels" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spaans" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spaans (Mexicaans)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estlands" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Perzisch" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Fins" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Frans" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Hongaars" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiaans" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japans" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreaans" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Lets" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Noors" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Pools" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugees" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugees (Braziliaans)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Roemeens" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russisch" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slowaaks" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Sloveens" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Servisch" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thais" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turks" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Oekraïnes" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chinees (vereenvoudigd)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chinees (traditioneel)" @@ -364,7 +368,7 @@ msgstr "Chinees (traditioneel)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Log in bij de app" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Dubbele namen kunnen niet bestaan onder hetzelfde bovenliggende object" msgid "Invalid choice" msgstr "Ongeldige keuze" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Naam" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Serverfout" msgid "An error has been logged by the server." msgstr "Er is een fout gelogd door de server." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Moet een geldig nummer zijn" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Selecteer valuta uit beschikbare opties" msgid "Username" msgstr "Gebruikersnaam" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Voornaam :" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Voornaam van de gebruiker" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Achternaam" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Achternaam van de gebruiker" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "E-mailadres van de gebruiker" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Medewerkers" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Heeft deze gebruiker medewerker machtigingen" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Administrator " -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Is deze gebruiker een administrator " -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Is deze gebruiker een administrator " msgid "Active" msgstr "Actief" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Is dit gebruikersaccount actief" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Je bent niet bevoegd om deze gebruikersrol te wijzigen." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Alleen administrators kunnen nieuwe gebruikers aanmaken" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Je account is aangemaakt." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Gebruik de wachtwoordreset functie om in te loggen" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Welkom bij InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Ongeldige waarde" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Data bestand" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Selecteer een bestand om te uploaden" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Niet ondersteund bestandstype" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Bestand is te groot" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Geen kolommen gevonden in het bestand" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Geen data rijen gevonden in dit bestand" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Geen data rijen opgegeven" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Geen gegevenskolommen opgegeven" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Verplichte kolom ontbreekt: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dubbele kolom: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Externe afbeelding" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL van extern afbeeldingsbestand" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Afbeeldingen van externe URL downloaden is niet ingeschakeld" @@ -759,7 +763,7 @@ msgstr "Toegewezen aan" msgid "Build must be cancelled before it can be deleted" msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Productie moet geannuleerd worden voordat het kan worden verwijderd" msgid "Consumable" msgstr "Verbruiksartikelen" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Toegewezen" msgid "Available" msgstr "Beschikbaar" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Beschikbaar" msgid "Build Order" msgstr "Productieorder" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Productieorderreferentie" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Productieorder waar deze productie aan is toegewezen" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Gebruiker of groep verantwoordelijk voor deze bouwopdracht" msgid "External Link" msgstr "Externe Link" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Link naar externe URL" @@ -1110,7 +1114,7 @@ msgstr "Productieorder {build} is voltooid" msgid "A build order has been completed" msgstr "Een productieorder is voltooid" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Geen productie uitvoer opgegeven" @@ -1122,37 +1126,37 @@ msgstr "Productie uitvoer is al voltooid" msgid "Build output does not match Build Order" msgstr "Productuitvoer komt niet overeen met de Productieorder" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Hoeveelheid moet groter zijn dan nul" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "Hoeveelheid kan niet groter zijn dan aantal" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Bouw object" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Bouw object" msgid "Quantity" msgstr "Hoeveelheid" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Vereiste hoeveelheid voor bouwopdracht" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Productieartikel moet een productieuitvoer specificeren, omdat het hoofdonderdeel gemarkeerd is als traceerbaar" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Toegewezen hoeveelheid ({q}) mag de beschikbare voorraad ({a}) niet overschrijden" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Voorraad item is te veel toegewezen" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Toewijzing hoeveelheid moet groter zijn dan nul" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Hoeveelheid moet 1 zijn voor geserialiseerde voorraad" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "Geselecteerde voorraadartikelen komen niet overeen met de BOM-regel" msgid "Stock Item" msgstr "Voorraadartikel" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Bron voorraadartikel" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Voorraad hoeveelheid toe te wijzen aan productie" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Installeren in" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Bestemming voorraadartikel" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Onderdeel naam" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Verpakking" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Onderdeel-id" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "Volgbaar" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Stuklijstartikel" @@ -2145,19 +2149,19 @@ msgstr "Onvolledige Productieuitvoeren" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "dagen" @@ -2578,7 +2582,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Activeer plugin om op interne evenementen te reageren" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Activeer project codes" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "Activeer project codes voor het bijhouden van projecten" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Voorraadcontrole functionaliteit" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Schakel voorraadfunctionaliteit in voor het opnemen van voorraadniveaus en het berekenen van voorraadwaarde" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "Externe locaties uitsluiten" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Voorraadartikelen op externe locaties uitsluiten van voorraadberekeningen" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Automatische Voorraadcontrole Periode" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Aantal dagen tussen automatische voorraadopname (ingesteld op nul om uit te schakelen)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "Rapport Verwijdering Interval" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Voorraadrapportage zal worden verwijderd na het opgegeven aantal dagen" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Verberg inactieve delen bij items op de homepage" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Toon geabonneerde onderdelen" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Toon geabonneerde onderdelen op de homepage" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Toon geabonneerde categorieën" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Toon geabonneerde onderdeel categorieën op de startpagina" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Toon laatste onderdelen" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Toon laatste onderdelen op de startpagina" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Laat BOMs zien die wachten op validatie op de startpagina" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Toon recente voorraadwijzigingen" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Toon recent aangepaste voorraadartikelen op de startpagina" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Toon lage voorraad" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Toon lage voorraad van artikelen op de startpagina" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Toon lege voorraad" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Toon lege voorraad van artikelen op de startpagina" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Toon benodigde voorraad" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Toon benodigde voorraad van artikelen voor productie op de startpagina" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Toon verlopen voorraad" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Toon verlopen voorraad van artikelen op de startpagina" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Toon verouderde voorraad" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Toon verouderde voorraad van artikelen op de startpagina" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Toon openstaande producties" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Toon openstaande producties op de startpagina" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Toon achterstallige productie" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Toon achterstallige producties op de startpagina" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Toon uitstaande PO's" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Toon uitstaande PO's op de startpagina" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Toon achterstallige PO's" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Toon achterstallige PO's op de startpagina" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Toon uitstaande SO's" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Toon uitstaande SO's op de startpagina" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Toon achterstallige SO's" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Toon achterstallige SO's op de startpagina" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "Toon in behandeling SO verzendingen" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "Toon in behandeling zijnde SO verzendingen op de startpagina" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Nieuws tonen" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Nieuws op de startpagina weergeven" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Inline labelweergave" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "PDF-labels in browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Standaard label printer" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Instellen welke label printer standaard moet worden geselecteerd" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Inline rapport weergeven" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "PDF-rapporten in de browser weergeven, in plaats van als bestand te downloaden" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Zoek Onderdelen" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Onderdelen weergeven in zoekscherm" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Zoek leveranciersonderdelen" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Leveranciersonderdelen weergeven in zoekscherm" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Fabrikant onderdelen zoeken" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Fabrikant onderdelen weergeven in zoekscherm" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Inactieve Onderdelen Verbergen" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Zoek categorieën" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Toon onderdeelcategorieën in zoekvenster" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Zoek in Voorraad" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Toon voorraad items in zoekvenster" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Verberg niet beschikbare voorraad items" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Voorraadartikelen die niet beschikbaar zijn niet in het zoekvenster weergeven" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Locaties doorzoeken" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Toon voorraadlocaties in zoekvenster" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Zoek bedrijven" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Toon bedrijven in zoekvenster" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Zoek Bouworders" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Inkooporders Zoeken" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "Toon inkooporders in het zoekvenster" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Inactieve Inkooporders Weglaten" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "Inactieve inkooporders weglaten in het zoekvenster" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Verkooporders zoeken" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "Toon verkooporders in het zoekvenster" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "Inactieve Verkooporders Weglaten" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "Inactieve verkooporders weglaten in het zoekvenster" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Zoek retourorders" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "Toon bouworders in zoekvenster" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "Inactieve retourbestellingen weglaten" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "Inactieve retourorders uitsluiten in zoekvenster" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Zoekvoorbeeld resultaten" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "Aantal resultaten om weer te geven in elk gedeelte van het zoekvenster" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Regex zoeken" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "Schakel reguliere expressies in zoekopdrachten in" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "Hele woorden zoeken" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "Zoekopdrachten geven resultaat voor hele woord overeenkomsten" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Toon hoeveelheid in formulieren" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Hoeveelheid beschikbare onderdelen in sommige formulieren weergeven" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "Escape-toets sluit formulieren" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "Gebruik de Escape-toets om standaard formulieren te sluiten" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Vaste navigatiebalk" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "De navigatiebalk positie is gefixeerd aan de bovenkant van het scherm" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Datum formaat" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Voorkeursindeling voor weergave van datums" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Onderdeel planning" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "Toon informatie voor het plannen van onderdelen" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Voorraadcontrole onderdeel" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Toon voorraadinformatie van onderdeel (als voorraadcontrole functionaliteit is ingeschakeld)" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "Tabel tekenreekslengte" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "Foutrapportages ontvangen" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "Meldingen ontvangen van systeemfouten" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Gebruiker" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "Prijs" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Eindpunt" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "Eindpunt waarop deze webhook wordt ontvangen" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "Naam van deze webhook" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "Is deze webhook actief" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Token voor toegang" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Geheim" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Gedeeld geheim voor HMAC" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "Bericht ID" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Koptekst" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Koptekst van dit bericht" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Berichtinhoud" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Inhoud van dit bericht" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Aan gewerkt" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Titel" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Titel" msgid "Link" msgstr "Koppeling" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Gepubliceerd" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Samenvatting" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Gelezen" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "Afbeelding" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Afbeelding" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbool" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definitie" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Bijlage" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Ontbrekend bestand" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Externe link ontbreekt" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Opmerking" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "Label" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Bestandsnaam" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Parameternaam" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Parameterwaarde" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "Opmerking" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "basisprijs" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimale kosten (bijv. voorraadkosten)" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "meerdere" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "Bouwen" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Totale Voorraad" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Onderdeel Categorie" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Onderdeel naam" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "Laatste voorraadcontrole" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "Onderdeel voor voorraadcontrole" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "Aantal individuele voorraadvermeldingen op het moment van voorraadcontrole" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "Totale voorraad op het moment van voorraadcontrole" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "Totale voorraad op het moment van voorraadcontrole" msgid "Date" msgstr "Datum" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "Datum waarop voorraad werd uitgevoerd" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "Gebruiker die deze voorraad heeft uitgevoerd" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "Minimale voorraadprijs" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "Geschatte minimum kosten van de voorraad op de hand" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "Maximale voorraadkosten" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "Geschatte maximale kosten van de hand van voorraad" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "Bestand voorraadcontrole (intern gegenereerd)" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Aantal onderdelen" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "Aantal door voorraadopname gedekte onderdelen" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "Gebruiker die om dit voorraadrapport heeft gevraagd" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "Test sjablonen kunnen alleen worden gemaakt voor testbare onderdelen" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Ingeschakeld" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "De template van de parameter moet uniek zijn" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "Parameternaam" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Parameterwaarde" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "Standaard Parameter Waarde" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Voorraaditems voor variant onderdelen kunnen worden gebruikt voor dit BOM artikel" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "Hoeveelheid moet een geheel getal zijn voor trackable onderdelen" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "Afbeelding van onderdeel niet gevonden" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "Test" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Resultaat" @@ -9892,7 +9960,7 @@ msgstr "Hoeveelheid komt niet overeen met serienummers" msgid "Serial numbers already exist" msgstr "Serienummers bestaan al" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "Testsjabloon bestaat niet" @@ -9940,67 +10008,67 @@ msgstr "De voorraad statuscodes moeten overeenkomen" msgid "StockItem cannot be moved as it is not in stock" msgstr "Voorraadartikel kan niet worden verplaatst omdat het niet op voorraad is" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "Voorraad item volgen" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "Item notities" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "Waarde moet voor deze test worden opgegeven" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "Bijlage moet worden geüpload voor deze test" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "Ongeldige waarde voor deze test" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Test resultaat" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "Test uitvoer waarde" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "Test resultaat bijlage" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "Test notities" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "Test station" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "De identificatie van het teststation waar de test werd uitgevoerd" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "Gestart" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "Het tijdstip van de start test" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "Afgerond" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "Het tijdstip van de afgeronde test" diff --git a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po index 3f0df0ee76..201a4649f5 100644 --- a/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/no/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -65,9 +65,9 @@ msgstr "Oppgi dato" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Ekstern server returnerte tomt svar" msgid "Supplied URL is not a valid image file" msgstr "Angitt URL er ikke en gyldig bildefil" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabisk" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarsk" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tsjekkisk" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dansk" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tysk" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Gresk" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engelsk" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spansk" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spansk (Meksikansk)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estisk" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persisk" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finsk" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Fransk" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungarsk" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiensk" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japansk" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreansk" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Latvisk" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polsk" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugisisk" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugisisk (Brasil)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumensk" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russisk" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovakisk" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovensk" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbisk" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svensk" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrainsk" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kinesisk (forenklet)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kinesisk (tradisjonell)" @@ -364,7 +368,7 @@ msgstr "Kinesisk (tradisjonell)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Logg inn på appen" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Duplikatnavn kan ikke eksistere under samme overordnede" msgid "Invalid choice" msgstr "Ugyldig valg" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Navn" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Serverfeil" msgid "An error has been logged by the server." msgstr "En feil har blitt logget av serveren." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Må være et gyldig tall" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Velg valuta ut fra tilgjengelige alternativer" msgid "Username" msgstr "Brukernavn" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Fornavn" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Fornavn på brukeren" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Etternavn" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Etternavn på brukeren" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "E-postadressen til brukeren" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personale" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Har denne brukeren personelltillatelser" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Superbruker" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Er denne brukeren en superbruker" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Er denne brukeren en superbruker" msgid "Active" msgstr "Aktiv" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Er denne brukerkontoen aktiv" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Du har ikke tillatelse til å endre denne brukerrollen." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Bare superbrukere kan opprette nye brukere" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Din konto er opprettet." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Vennligst bruk funksjonen for å tilbakestille passord for å logge inn" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Velkommen til InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Ugyldig verdi" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Velg datafil for opplasting" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Filtypen støttes ikke" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Filen er for stor" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Ingen kolonner funnet i filen" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Ingen datarader funnet i fil" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Ingen datarader oppgitt" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Ingen datakolonner angitt" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Mangler påkrevd kolonne: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dupliaktkolonne: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Eksternt bilde" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URLtil ekstern bildefil" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Nedlasting av bilder fra ekstern URL er ikke aktivert" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Produksjonen må avbrytes før den kan slettes" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Produksjonen må avbrytes før den kan slettes" msgid "Consumable" msgstr "Forbruksvare" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Tildelt" msgid "Available" msgstr "Tilgjengelig" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Tilgjengelig" msgid "Build Order" msgstr "Produksjonsordre" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Produksjonsordre-referanse" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Produksjonsordre som denne produksjonen er tildelt" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Bruker eller gruppe ansvarlig for produksjonsordren" msgid "External Link" msgstr "Ekstern lenke" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Lenke til ekstern URL" @@ -1110,7 +1114,7 @@ msgstr "Produksjonsordre {build} er fullført" msgid "A build order has been completed" msgstr "En produksjonsordre er fullført" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Ingen produksjonsartikkel spesifisert" @@ -1122,37 +1126,37 @@ msgstr "Produksjonsartikkelen er allerede fullført" msgid "Build output does not match Build Order" msgstr "Produksjonsartikkelen samsvarer ikke med produksjonsordren" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Mengden må være større enn null" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "Kvantitet kan ikke være større enn utgangsantallet" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Produksjonsartikkel {serial} har ikke bestått alle påkrevde tester" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "Produksjonsartikkel" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Produksjonsobjekt" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Produksjonsobjekt" msgid "Quantity" msgstr "Antall" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Påkrevd antall for produksjonsordre" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Produksjonselement må spesifisere en produksjonsartikkel, da master-del er merket som sporbar" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tildelt antall ({q}) kan ikke overstige tilgjengelig lagerbeholdning ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Lagervaren er overtildelt" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Tildelingsantall må være større enn null" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Mengden må være 1 for serialisert lagervare" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "Valgt lagervare samsvarer ikke med BOM-linjen" msgid "Stock Item" msgstr "Lagervare" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Kildelagervare" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Lagerantall å tildele til produksjonen" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Monteres i" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Lagervare for montering" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Delnavn" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Emballasje" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Del-ID" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "Del -IPN" @@ -1667,13 +1671,13 @@ msgstr "Sporbar" msgid "Inherited" msgstr "Nedarvet" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Tillat Varianter" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "BOM-artikkel" @@ -2145,19 +2149,19 @@ msgstr "Ufullstendige artikler" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "Er lenke" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "Er fil" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "Brukeren har ikke tillatelse til å slette dette vedlegget" @@ -2350,7 +2354,7 @@ msgstr "Hvor ofte valutakurser skal oppdateres (sett til null for å deaktiverer #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "dager" @@ -2578,7 +2582,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Tillat utvidelser å reagere på interne hendelser" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Aktiver prosjektkoder" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "Aktiver prosjektkoder for å spore prosjekter" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Varetellingsfunksjonalitet" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Aktiver varetellingsfunksjonalitet for å registrere lagernivåer og regne ut lagerverdi" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "Ekskluder eksterne plasseringer" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Eksluder lagervarer i eksterne plasseringer fra varetellinger" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Automatisk varetellingsperiode" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Antall dager mellom automatisk varetellingsregistrering (sett til null for å deaktivere)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "Rapportslettingsintervall" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Varetellingsrapporter vil slettes etter angitt antall dager" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "Vis brukernes fulle navn" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "Vis brukernes fulle navn istedet for brukernavn" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Innstillingsnøkkel (må være unik - ufølsom for store og små bokstaver" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Skjul inaktive elementer" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Skjul inaktive deler i resultater som vises på hjemmesiden" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Vis abonnerte deler" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Vis abonnerte deler på startsiden" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Vis abonnerte kategorier" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Vis abonnerte delkatekorier på startsiden" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Vis nyeste deler" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Vis nyeste deler på startsiden" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Vis stykklister som venter på validering på startsiden" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Vis nylige lagerendringer" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Vis nylig endrede lagervarer på startsiden" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Vis lav lagerbeholdning" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Vis lave lagervarer på startsiden" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Vis tomme lagervarer" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Vis tom lagerbeholdning på startsiden" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Vis nødvendig lagerbeholdning" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Vis lagervarer som trengs for produksjon på startsiden" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Vis utløpt lagerbeholdning" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Vis utløpte lagervarer på startsiden" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Vis foreldet lagerbeholdning" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Vis foreldet lagerbeholdning på startsiden" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Vis ventende produksjoner" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Vi ventende produksjoner på startsiden" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Vis forfalte produksjoner" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Vis forfalte produksjoner på startsiden" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Vis utestående Innkjøpsordrer" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Vis utestående Innkjøpsordrer på startsiden" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Vis forfalte Innkjøpsordrer" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Vis forfalte Innkjøpsordrer på startsiden" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Vis utestående Salgsordrer" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Vis utestående Salgsordrer på startsiden" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Vis forfalte SOer" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Vis forfalte SOer på startsiden" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "Vis ventende SO-forsendelser" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "Vis ventende SO-forsendelser på startsiden" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Vis Nyheter" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Vis nyheter på startsiden" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Innebygd etikettvisning" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Vis PDF-etiketter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Standard etikettskriver" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Konfigurer hvilken etikettskriver som skal være valgt som standard" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Innebygd rapportvisning" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Vis PDF-rapporter i nettleseren fremfor å lastes ned som en fil" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Søk i Deler" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Vis deler i forhåndsvsningsvinduet for søk" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Søk i Leverandørdeler" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Vis leverandørdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Søk i Produsentdeler" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Vis produsentdeler i forhåndsvisningsvinduet for søk" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Skjul Inaktive Deler" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Ekskluder inaktive deler fra forhåndsvisningsvinduet for søk" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Søk i kategorier" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Vis delkategorier i forhåndsvisningsvinduet for søk" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Søk i lagerbeholdning" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Vis lagervarer i forhåndsvisningsvinduet for søk" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Skjul utilgjengelige Lagervarer" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Ekskluder lagervarer som ikke er tilgjengelige fra forhåndsvisningsvinduet for søk" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Søk i Plasseringer" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Vis lagerplasseringer i forhåndsvisningsvinduet for søk" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Søk i Firma" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Vis firma i forhåndsvsningsvinduet for søk" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Søk i Produksjonsordrer" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Vis produksjonsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Søk i Innkjøpsordrer" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "Vis innkjøpsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Ekskluder inaktive Innkjøpsordrer" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "Ekskluder inaktive innkjøpsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Søk i Salgsordrer" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "Vis salgsordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "Ekskluder Inaktive Salgsordrer" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "Ekskluder inaktive salgsordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Søk i Returordrer" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "Vis returordrer i forhåndsvisningsvinduet for søk" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "Ekskluder Inaktive Returordrer" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "Ekskluder inaktive returordrer fra forhåndsvisningsvinduet for søk" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Forhåndsvisning av søkeresultater" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "Antall resultater å vise i hver seksjon av søkeresultatsforhåndsvisningen" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Regex-søk" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "Aktiver regulære uttrykk i søkeord" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "Helordsøk" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "Søk returnerer resultater for treff med hele ord" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Vis antall i skjemaer" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Vis antall tilgjengelige deler i noen skjemaer" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "Escape-knappen lukker skjemaer" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "Bruk Escape-knappen for å lukke modal-skjemaer" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Fast navigasjonsbar" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "Navigasjonsbarens posisjon er fast på toppen av skjermen" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Datoformat" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Foretrukket format for å vise datoer" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Delplanlegging" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "Vis delplanleggingsinformasjon" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Lagertelling for Del" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Vis lagertellingsinformasjon for del (om lagertellingsfunksjonalitet er aktivert)" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "Tabellstrenglengde" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "Maksimal lengdegrense for tekst vist i tabeller" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "Motta feilrapporter" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "Motta varsler om systemfeil" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Bruker" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "Antall for prisbrudd" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "Antall for prisbrudd" msgid "Price" msgstr "Pris" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "Enhetspris på spesifisert antall" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Endepunkt" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "Endepunktet hvor denne webhooken er mottatt" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "Navn for webhooken" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "Er webhooken aktiv" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "Sjetong" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Nøkkel for tilgang" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Hemmelig" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Delt hemmlighet for HMAC" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "Melding ID" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Unik Id for denne meldingen" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "Vert" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Verten denne meldingen ble mottatt fra" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Tittel" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Overskrift for denne meldingen" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Brødtekst" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Innholdet i meldingen" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "Endepunktet meldingen ble mottatt fra" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Arbeidet med" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "Var arbeidet med denne meldingen ferdig?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tittel" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Tittel" msgid "Link" msgstr "Lenke" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Publisert" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Forfatter" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Sammendrag" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Les" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "Er dette nyhetselementet lest?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "Er dette nyhetselementet lest?" msgid "Image" msgstr "Bilde" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Bildefil" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "Enhetssymbolet må være unikt" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "Enhetsnavn må være en gyldig identifikator" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "Enhetsnavn" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Symbol" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "Valgfritt enhetssymbol" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definisjon" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "Enhetsdefinisjon" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Vedlegg" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Fil mangler" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Mangler eksternlenke" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Velg fil å legge ved" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "Vedleggskommentar" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "Opplastet dato" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "Datoen som filen ble lastet opp" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "Filstørrelse" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "Filstørrelse i byte" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "Ugyldig modelltype spesifisert for vedlegg" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Nøkkel" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "Artikler har blitt mottatt mot en returordre" msgid "Error raised by plugin" msgstr "Feil oppstått i utvidelse" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "Kjører" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "Ventende oppgaver" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Planlagte oppgaver" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "Mislykkede oppgaver" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "Oppgave-ID" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "Unik oppgave-ID" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "Lås" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Låsetidspunkt" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Oppgavenavn" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Funksjon" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Funksjonsnavn" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Argumenter" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Oppgaveargumenter" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "Nøkkelordargumenter" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "Nøkkelordargumenter for oppgave" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Filnavn" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "Modelltype" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "Brukeren har ikke tillatelse tillatelse å opprette eller endre vedlegg for denne modellen" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Parameternavn" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Parameterverdi" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "Leverandørens delbeskrivelse" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "Leverandørens delbeskrivelse" msgid "Note" msgstr "Notat" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "grunnkostnad" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Minimum betaling (f.eks. lageravgift)" @@ -4618,7 +4630,7 @@ msgstr "Pakkeantall" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Totalt antall i en enkelt pakke. La være tom for enkeltenheter." -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "flere" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "Brukt i" msgid "Building" msgstr "Produseres" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Minimal kostnad" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Maksimal kostnad" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Total lagerbeholdning" msgid "Input quantity for price calculation" msgstr "Sett inn antall for prisberegning" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Delkategori" @@ -6867,7 +6879,7 @@ msgstr "Del med dette Navnet, internt delnummer og Revisjon eksisterer allerede. msgid "Parts cannot be assigned to structural part categories!" msgstr "Deler kan ikke tilordnes strukturelle delkategorier!" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Delnavn" @@ -7006,159 +7018,159 @@ msgstr "Eier ansvarlig for denne delen" msgid "Last Stocktake" msgstr "Siste lagertelling" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Selg flere" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "Valuta som brukes til å bufre prisberegninger" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "Minimal BOM-kostnad" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "Minste kostnad for komponentdeler" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "Maksimal BOM-kostnad" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "Maksimal kostnad for komponentdeler" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "Minimal innkjøpskostnad" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "Minimal historisk innkjøpskostnad" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "Maksimal innkjøpskostnad" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "Maksimal historisk innkjøpskostnad" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "Minimal intern pris" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "Minimal kostnad basert på interne prisbrudd" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "Maksimal intern pris" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "Maksimal kostnad basert på interne prisbrudd" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "Minimal leverandørpris" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "Minimumspris for del fra eksterne leverandører" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "Maksimal leverandørpris" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "Maksimalpris for del fra eksterne leverandører" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "Minimal Variantkostnad" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "Beregnet minimal kostnad for variantdeler" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "Maksimal Variantkostnad" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "Beregnet maksimal kostnad for variantdeler" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "Overstyr minstekostnad" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "Overstyr maksimal kostnad" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "Beregnet samlet minimal kostnad" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "Beregnet samlet maksimal kostnad" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "Minimal salgspris" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "Minimal salgspris basert på prisbrudd" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "Maksimal Salgspris" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "Maksimal salgspris basert på prisbrudd" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "Minimal Salgskostnad" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "Minimal historisk salgspris" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "Maksimal Salgskostnad" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "Maksimal historisk salgspris" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "Del for varetelling" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "Antall" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "Antall individuelle lagerenheter på tidspunkt for varetelling" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "Total tilgjengelig lagerbeholdning på tidspunkt for varetelling" msgid "Date" msgstr "Dato" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "Dato for utført lagertelling" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "Flere notater" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "Bruker som utførte denne lagertellingen" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "Minimal lagerkostnad" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "Estimert minimal kostnad for lagerbeholdning" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "Maksimal lagerkostnad" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "Estimert maksimal kostnad for lagerbeholdning" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Rapport" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "Lagertellingsrapportfil (generert internt)" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Antall deler" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "Antall deler dekket av varetellingen" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "Bruker som forespurte varetellingsrapporten" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "Valg må være unike" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Testnavn" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "Angi et navn for testen" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Testbeskrivelse" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "Legg inn beskrivelse for denne testen" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Aktivert" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Påkrevd" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "Er det påkrevd at denne testen bestås?" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Krever verdi" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "Krever denne testen en verdi når det legges til et testresultat?" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Krever vedlegg" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "Krever denne testen et filvedlegg når du legger inn et testresultat?" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Valg" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "Sjekkboksparameter kan ikke ha enheter" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "Sjekkboksparameter kan ikke ha valg" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "Navn på parametermal må være unikt" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "Parameternavn" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "Fysisk enheter for denne parameteren" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "Parameterbeskrivelse" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Sjekkboks" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "Er dette parameteret en sjekkboks?" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "Gyldige valg for denne parameteren (kommaseparert)" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "Ugyldig valg for parameterverdi" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "Overordnet del" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametermal" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Parameterverdi" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Standardverdi" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "Standard Parameterverdi" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "Del-ID eller delnavn" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "Unik del-ID-verdi" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "Delens interne delnummerverdi" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "Nivå" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "BOM-nivå" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Velg overordnet del" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "Underordnet del" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "Velg del som skal brukes i BOM" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "BOM-antall for denne BOM-artikkelen" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "Denne BOM-artikkelen er valgfri" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Denne BOM-artikkelen er forbruksvare (den spores ikke i produksjonsordrer)" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Svinn" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Forventet produksjonssvinn (absolutt eller prosent)" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "BOM-artikkelreferanse" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "BOM-artikkelnotater" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "Kontrollsum" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "BOM-linje kontrollsum" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Godkjent" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "Denne BOM-artikkelen er godkjent" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Arves" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Denne BOM-artikkelen er arvet fra stykkliste for variantdeler" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Lagervarer for variantdeler kan brukes for denne BOM-artikkelen" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "Antall må være heltallsverdi for sporbare deler" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "Underordnet del må angis" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "BOM-artikkel erstatning" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "Erstatningsdel kan ikke være samme som hoveddelen" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "Overordnet BOM-artikkel" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "Erstatningsdel" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "Del 1" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "Del 2" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "Velg relatert del" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "Del-forhold kan ikke opprettes mellom en del og seg selv" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "Duplikatforhold eksisterer allerede" @@ -8593,7 +8605,7 @@ msgstr "Bilde for del ikke funnet" msgid "Part Pricing" msgstr "Delprising" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "Gir støtte for å skanne TME-strekkoder" msgid "The Supplier which acts as 'TME'" msgstr "Leverandøren som fungerer som \"TME\"" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Installasjon av utvidelse vellykket" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Installerte utvidelsen til {path}" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "Eksempel valutakonverterings-utvidelse" msgid "InvenTree Contributors" msgstr "InvenTree-bidragsytere" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "Kilde-URL" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "Ingen gyldige objekter angitt for mal" @@ -9518,7 +9586,7 @@ msgstr "Testresultater" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Resultat" @@ -9892,7 +9960,7 @@ msgstr "Antallet stemmer ikke overens med serienumrene" msgid "Serial numbers already exist" msgstr "Seriernummer eksisterer allerede" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "Lagerstatuskoder må være like" msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagervare kan ikke flyttes fordi den ikke er på lager" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "Oppføringsnotater" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "Verdi må angis for denne testen" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "Vedlegg må lastes opp for denne testen" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Testresultat" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "Testens verdi" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "Vedlegg til testresultat" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "Testnotater" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po index fcdd4f7b09..ef880792a1 100644 --- a/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -65,9 +65,9 @@ msgstr "Wprowadź dane" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Zdalny serwer zwrócił pustą odpowiedź" msgid "Supplied URL is not a valid image file" msgstr "Podany adres URL nie jest poprawnym plikiem obrazu" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "bułgarski" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Czeski" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Duński" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Niemiecki" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grecki" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angielski" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Hiszpański (Meksyk)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Perski" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "fiński" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francuski" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "hinduski" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Węgierski" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Włoski" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japoński" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreański" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Łotewski" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polski" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugalski" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugalski (Brazylijski)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumuński" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Słowacki" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Słoweński" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "serbski" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tajski" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turecki" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukraiński" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "chiński (uproszczony)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "chiński (tradycyjny)" @@ -364,7 +368,7 @@ msgstr "chiński (tradycyjny)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Logowanie do aplikacji" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Duplikaty nazw nie mogą istnieć pod tym samym rodzicem" msgid "Invalid choice" msgstr "Błędny wybór" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Nazwa" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Błąd serwera" msgid "An error has been logged by the server." msgstr "Błąd został zapisany w logach serwera." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Numer musi być prawidłowy" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Wybierz walutę z dostępnych opcji" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "Aktywny" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Nie masz uprawnień do zmiany tej roli użytkownika." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Tylko superużytkownicy mogą tworzyć nowych użytkowników" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Twoje konto zostało utworzone." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Zresetuj hasło" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Witamy w InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Nieprawidłowa wartość" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Plik danych" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Wybierz plik danych do przesłania" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Nieobsługiwany typ pliku" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Plik jest zbyt duży" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Nie znaleziono kolumn w pliku" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Nie znaleziono wierszy danych w pliku" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Nie podano wierszy danych" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Nie podano kolumn danych" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Brakuje wymaganej kolumny: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Zduplikowana kolumna: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Obrazek zewnętrzny" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "Adres URL zdalnego pliku obrazu" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Pobieranie obrazów ze zdalnego URL nie jest włączone" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięta" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Kompilacja musi zostać anulowana, zanim będzie mogła zostać usunięt msgid "Consumable" msgstr "Materiał eksploatacyjny" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Przydzielono" msgid "Available" msgstr "Dostępne" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Dostępne" msgid "Build Order" msgstr "Zlecenie Budowy" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Odwołanie do zamówienia wykonania" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Zamówienie budowy, do którego budowa jest przypisana" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Użytkownik lub grupa odpowiedzialna za te zlecenie produkcji" msgid "External Link" msgstr "Link Zewnętrzny" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Link do zewnętrznego adresu URL" @@ -1110,7 +1114,7 @@ msgstr "Kolejność kompilacji {build} została zakończona" msgid "A build order has been completed" msgstr "Kolejność kompilacji została zakończona" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Nie określono danych wyjściowych budowy" @@ -1122,37 +1126,37 @@ msgstr "Budowanie wyjścia jest już ukończone" msgid "Build output does not match Build Order" msgstr "Skompilowane dane wyjściowe nie pasują do kolejności kompilacji" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Ilość musi być większa niż zero" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "Ilość nie może być większa niż ilość wyjściowa" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Wyjście budowy {serial} nie przeszło wszystkich testów" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Zbuduj obiekt" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Zbuduj obiekt" msgid "Quantity" msgstr "Ilość" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Wymagana ilość dla zlecenia produkcji" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Przydzielona ilość ({q}) nie może przekraczać dostępnej ilości zapasów magazynowych ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Pozycja magazynowa jest nadmiernie przydzielona" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Alokowana ilość musi być większa niż zero" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Ilość musi wynosić 1 dla serializowanych zasobów" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "Wybrana pozycja magazynowa nie pasuje do pozycji w zestawieniu BOM" msgid "Stock Item" msgstr "Element magazynowy" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Lokalizacja magazynowania przedmiotu" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Ilość zapasów do przydzielenia do produkcji" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Zainstaluj do" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Docelowa lokalizacja magazynowa przedmiotu" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Nazwa komponentu" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Opakowanie" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID komponentu" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "IPN komponentu" @@ -1667,13 +1671,13 @@ msgstr "Możliwość śledzenia" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Zezwalaj na warianty" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Element BOM" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "Jak często aktualizować kursy wymiany walut (ustaw zero aby wyłączy #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "dni" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Klucz ustawień (musi być unikalny - niewrażliwy na wielkość liter" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Pokaż obserwowane części" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Pokaż obserwowane części na stronie głównej" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Pokaż obserwowane kategorie" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Pokaż obserwowane kategorie części na stronie głównej" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Pokaż najnowsze części" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Pokaż najnowsze części na stronie głównej" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Pokaż niski stan magazynowy" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Pokaż elementy o niskim stanie na stronie głównej" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Pokaż wymagany stan zapasów" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Szukaj części" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Ukryj nieaktywne części" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Wyszukaj zlecenia zakupu" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Wyklucz nieaktywne zlecenia zakupu" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Pokaż ilość w formularzach" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Stały pasek nawigacyjny" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Format daty" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Preferowany format wyświetlania dat" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Planowanie komponentów" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Użytkownik" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "Cena" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Punkt końcowy" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Sekret" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Współdzielony sekret dla HMAC" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "Id wiadomości" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Unikalny identyfikator dla tej wiadomości" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Host, od którego otrzymano tę wiadomość" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Nagłówek" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Nagłówek tej wiadomości" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Zawartość" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "Łącze" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "Obraz" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Załącznik" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Brak pliku" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Brak zewnętrznego odnośnika" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Wybierz plik do załączenia" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentarz" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Klucz" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "Jest uruchomiony" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "Oczekujce zadania" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Zaplanowane zadania" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "Zadania zakończone błędem" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "ID zadania" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "Unikalny identyfikator zadania" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "Blokada" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Czas blokady" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Nazwa zadania" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Funkcja" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Nazwa funkcji" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Argumenty" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Argumenty zadania" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Nazwa pliku" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Nazwa parametru" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Wartość parametru" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "Uwaga" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "koszt podstawowy" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "Ilość w opakowaniu" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "wielokrotność" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "Dane" @@ -6557,12 +6569,12 @@ msgstr "Użyte w" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Kategoria komponentu" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Nazwa komponentu" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "Ostatnia inwentaryzacja" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Sprzedaj wiele" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "Data" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nazwa testu" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Testowy opis" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "Wprowadź opis do tego testu" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Aktywne" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Wymagane" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Wymaga wartości" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Wymaga załącznika" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "Część nadrzędna" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Wartość parametru" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Wartość domyślna" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "Unikalny wartość ID komponentu" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "Wartość IPN części" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "Poziom" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Wybierz część nadrzędną" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "Podczęść" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "Ten element BOM jest opcjonalny" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "Notatki pozycji BOM" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "Suma kontrolna" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Zatwierdzone" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "Część zastępcza" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "Część 1" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "Część 2" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "Wybierz powiązaną część" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "Nie znaleziono obrazka części" msgid "Part Pricing" msgstr "Cennik części" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "Źródłowy adres URL" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "Brak prawidłowych obiektów do szablonu" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Wynik" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "Numer seryjny już istnieje" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "Notatki do wpisu" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "Należy podać wartość dla tego testu" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Wynik testu" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po index 276e8493de..57bf0de912 100644 --- a/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -65,9 +65,9 @@ msgstr "Insira uma Data" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "O servidor remoto retornou resposta vazia" msgid "Supplied URL is not a valid image file" msgstr "A URL fornecida não é um arquivo de imagem válido" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Búlgaro" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tcheco" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Dinamarquês" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Alemão" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grego" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglês" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Espanhol" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Espanhol (Mexicano)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Persa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finlandês" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francês" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebraico" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindu" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Húngaro" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italiano" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonês" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coreano" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Letão" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holandês" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norueguês" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polonês" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Português" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Português (Brasileiro)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Romeno" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russo" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Eslovaco" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Esloveno" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Sérvio" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Sueco" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tailandês" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turco" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ucraniano" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chinês (Simplificado)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chinês (Tradicional)" @@ -364,7 +368,7 @@ msgstr "Chinês (Tradicional)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Entre no aplicativo" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Nomes duplicados não podem existir sob o mesmo parental" msgid "Invalid choice" msgstr "Escolha inválida" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Nome" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Erro de servidor" msgid "An error has been logged by the server." msgstr "Log de erro salvo pelo servidor." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Preicsa ser um numero valido" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Selecione a Moeda nas opções disponíveis" msgid "Username" msgstr "Nome de usuário" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Primeiro Nome" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Sobrenome" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "Ativo" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Não tem permissões para alterar este papel do usuário." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Apenas superusuários podem criar novos usuários" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Sua conta foi criada." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Por favor, use a função de redefinir senha para acessar" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Bem-vindo(a) ao InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Valor inválido" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Arquivo de dados" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Selecione um arquivo de dados para enviar" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Tipo de arquivo não suportado" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "O arquivo é muito grande" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Nenhuma coluna encontrada no arquivo" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Nenhuma linha de dados encontrada no arquivo" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Nenhuma linha de dados fornecida" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Nenhuma coluna de dados fornecida" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Falta a coluna obrigatória: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Coluna duplicada: \"{col}\"" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Imagens Remota" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL do arquivo de imagem remoto" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Baixar imagens de URL remota não está habilitado" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Produção deve ser cancelada antes de ser deletada" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Produção deve ser cancelada antes de ser deletada" msgid "Consumable" msgstr "Consumível" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Alocado" msgid "Available" msgstr "Disponível" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Disponível" msgid "Build Order" msgstr "Ordem de Produção" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Referência do pedido de produção" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Pedido de produção para qual este serviço está alocado" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Usuário ou grupo responsável para este pedido de produção" msgid "External Link" msgstr "Link Externo" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Link para URL externa" @@ -1110,7 +1114,7 @@ msgstr "O Pedido de produção {build} foi concluído!" msgid "A build order has been completed" msgstr "Um pedido de produção foi concluído" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Nenhuma saída de produção especificada" @@ -1122,37 +1126,37 @@ msgstr "Saída de produção já completada" msgid "Build output does not match Build Order" msgstr "Saída da produção não corresponde ao Pedido de Produção" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Quantidade deve ser maior que zero" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "Quantidade não pode ser maior do que a quantidade de saída" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "O item de produção {serial} não passou todos os testes necessários" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "Item da linha de Produção" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Objeto de produção" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Objeto de produção" msgid "Quantity" msgstr "Quantidade" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Quantidade necessária para o pedido de produção" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Item de produção deve especificar a saída, pois peças mestres estão marcadas como rastreáveis" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Quantidade alocada ({q}) não deve exceder a quantidade disponível em estoque ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "O item do estoque está sobre-alocado" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Quantidade alocada deve ser maior que zero" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Quantidade deve ser 1 para estoque serializado" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "Item estoque selecionado não coincide com linha da LDM" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "Item estoque selecionado não coincide com linha da LDM" msgid "Stock Item" msgstr "Item de estoque" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Origem do item em estoque" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Quantidade do estoque para alocar à produção" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Instalar em" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Destino do Item do Estoque" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Nome da Peça" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Embalagem" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID da Peça" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "IPN da Peça" @@ -1667,13 +1671,13 @@ msgstr "Rastreável" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Permitir variações" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Item LDM" @@ -2145,19 +2149,19 @@ msgstr "Saídas Incompletas" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "É uma Ligação" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "É um arquivo" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "O Utilizador não tem permissão para remover este anexo" @@ -2350,7 +2354,7 @@ msgstr "Com que frequência atualizar as taxas de câmbio (defina como zero para #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "dias" @@ -2578,7 +2582,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Ativar extensões para responder a eventos internos" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Habilitar códigos de projeto" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "Ativar códigos de projeto para rastrear projetos" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Funcionalidade de Balanço do Inventário" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Ativar funcionalidade de balanço para gravar níveis de estoque e calcular seu valor" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "Excluir Locais Externos" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Excluir itens de estoque em locais externos dos cálculos do estoque" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Período de Balanço Automático" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Número de dias entre gravação do balanço de estoque (coloque zero para desativar)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "Intervalo para Excluir o Relatório" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Relatórios de balanço serão apagados após um número de dias especificado" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "Mostrar nomes completos dos usuários" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "Mostrar Nomes Completos em vez de Nomes de Usuário" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Senha de configurações (deve ser única — diferencia maiúsculas de minúsculas" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Ocultar peças inativas" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ocultar peças inativas nos resultados exibidos na página inicial" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Mostrar peças subscritas" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Mostrar peças subscritas na tela inicial" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Mostrar categorias subscritas" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Mostrar categorias de peças subscritas na tela inicial" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Mostrar peças mais recentes" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Mostrar as peças mais recentes na página inicial" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Mostrar LDMs que aguardam validação na página inicial" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Mostrar alterações recentes de estoque" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Mostrar itens de estoque alterados recentemente na página inicial" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Mostrar estoque baixo" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Mostrar itens de baixo estoque na página inicial" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Mostrar estoque esgotado" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Mostrar itens sem estoque na página inicial" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Mostrar estoque necessário" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Mostrar itens de estoque necessários para produções na tela inicial" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Mostrar estoque expirado" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Mostrar expirados itens em estoque na tela inicial" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Mostrar estoque inativo" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Mostrar estoque inativo na tela inicial" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Mostrar produções pendentes" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Mostrar produções pendentes na tela inicial" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Mostrar produções atrasadas" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Mostrar produções atrasadas na tela inicial" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Mostrar pedidos de compra pendentes" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Mostrar os Pedidos de Compras pendentes na página inicial" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Mostrar Pedidos de Compra atrasados" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Mostrar os Pedidos de Compras atrasadas na tela inicial" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Mostrar pedidos de vendas pendentes" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Mostrar os Pedidos de Vendas pendentes na página inicial" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Mostrar Pedidos de Venda atrasados" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Mostrar os Pedidos de Vendas atrasadas na tela inicial" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "Mostrar remessas de OV pendentes" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "Mostrar envios OV pendentes na tela inicial" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Mostrar notícias" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Mostrar notícias na tela inicial" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Mostrar etiqueta em linha" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Mostrar etiquetas em PDF no navegador, ao invés de baixar o arquivo" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Impressora de etiquetas padrão" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Configurar qual impressora de etiqueta deve ser selecionada por padrão" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Mostrar relatório em linha" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Mostrar relatórios em PDF no navegador, ao invés de baixar o arquivo" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Procurar Peças" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Mostrar peças na janela de visualização de pesquisa" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Buscar Peças do Fornecedor" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Mostrar fornecedor de peças na janela de visualização de pesquisa" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Buscar peças do fabricante" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Mostrar fabricante de peças na janela de visualização de pesquisa" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Ocultar peças inativas" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Não incluir peças inativas na janela de visualização de pesquisa" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Pesquisar Categorias" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Mostrar categoria das peças na janela de visualização de pesquisa" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Pesquisar Estoque" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Mostrar itens do estoque na janela de visualização de pesquisa" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Ocultar itens do estoque indisponíveis" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Não incluir itens de estoque que não estão disponíveis na janela de visualização de pesquisa" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Procurar Locais" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Mostrar locais de estoque na janela de visualização de pesquisa" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Pesquisar empresas" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Mostrar empresas na janela de visualização de pesquisa" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Procurar Pedidos de Produção" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Mostrar pedidos de produção na janela de visualização de pesquisa" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Mostrar Pedido de Compras" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "Mostrar pedidos de compra na janela de visualização de pesquisa" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Não incluir Pedidos de Compras Inativos" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "Não incluir pedidos de compras inativos na janela de visualização de pesquisa" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Procurar Pedidos de Vendas" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "Mostrar pedidos de vendas na janela de visualização de pesquisa" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "Não Incluir Pedidos de Compras Inativas" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "Não incluir pedidos de vendas inativos na janela de visualização de pesquisa" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Procurar Pedidos de Devolução" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "Mostrar pedidos de devolução na janela de visualização de pesquisa" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "Não Incluir Pedidos de Devolução Inativas" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "Não incluir pedidos de devolução inativos na janela de visualização de pesquisa" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Mostrar Resultados Anteriores" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "Número de resultados mostrados em cada seção da janela de visualização de pesquisa" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Pesquisa de Regex" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "Permitir expressôes comuns nas conultas de pesquisas" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "Busca de Palavras Inteira" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "Pesquisa retorna que palavra inteira coincide" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Mostrar Quantidade nos Formulários" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Mostrar a quantidade de peças disponíveis em alguns formulários" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "Tecla Esc Fecha Formulários" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "Usar a tecla Esc para fechar fomulários modais" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Fixar Navbar" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "A posição do Navbar é fixa no topo da tela" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Formato da data" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Formato preferido para mostrar datas" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Agendamento de peças" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "Mostrar informações de agendamento de peças" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Balanço de Peça" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Mostrar informação de balanço da peça (se a funcionalidade de balanço estiver habilitada)" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "Comprimento da Tabela de Frases" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "Limite máximo de comprimento para frases exibidas nas visualizações de tabela" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "Receber relatório de erros" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "Receber notificações para erros do sistema" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "Últimas máquinas de impressão utilizadas" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "Salvar as últimas máquinas de impressão usadas para um usuário" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Usuario" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "Quantidade de Parcelamentos" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "Quantidade de Parcelamentos" msgid "Price" msgstr "Preço" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "Preço unitário na quantidade especificada" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Ponto final" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "Ponto final em qual o gancho web foi recebido" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "Nome para este webhook" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "Este gancho web está ativo" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Token de acesso" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Segredo" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Segredo compartilhado para HMAC" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "ID da Mensagem" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Identificador exclusivo desta mensagem" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "Servidor" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Servidor do qual esta mensagem foi recebida" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Cabeçalho" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Cabeçalho da mensagem" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Corpo" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Corpo da mensagem" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "Ponto do qual esta mensagem foi recebida" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Trabalhado em" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "O trabalho desta mensagem foi concluído?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Título" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Título" msgid "Link" msgstr "Ligação" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Publicado" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Autor" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Resumo" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Lida" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "Esta notícia do item foi lida?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "Esta notícia do item foi lida?" msgid "Image" msgstr "Imagem" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Arquivo de imagem" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "Nome da unidade deve ser um identificador válido" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "Nome da unidade" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Símbolo" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "Símbolo de unidade opcional" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Definição" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "Definição de unidade" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Anexo" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Arquivo ausente" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Link externo não encontrado" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Selecione arquivo para anexar" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Comentario" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Chave" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "Os itens de um pedido de devolução foram recebidos" msgid "Error raised by plugin" msgstr "Erro criado pela extensão" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "Executando" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "Tarefas Pendentes" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Tarefas Agendadas" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "Tarefas com Falhas" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "ID da Tarefa" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "ID Único da Tarefa" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "Bloquear" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Tempo de bloqueio" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Nome da tarefa" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Função" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Nome da função" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Argumentos" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Argumentos da tarefa" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "Argumentos de Palavra-chave" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "Argumentos Palavra-chave da Tarefa" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Nome do arquivo" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Nome do parâmetro" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Valor do Parâmetro" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "Descrição da peça fornecedor" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "Descrição da peça fornecedor" msgid "Note" msgstr "Anotação" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "preço base" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Taxa mínima (ex.: taxa de estoque)" @@ -4618,7 +4630,7 @@ msgstr "Quantidade de embalagens" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Quantidade total fornecida em um único pacote. Deixe em branco para itens únicos." -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "múltiplo" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "Dados" @@ -6557,12 +6569,12 @@ msgstr "Usado em" msgid "Building" msgstr "Produzindo" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Custo Mínimo" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Custo Máximo" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Estoque Total" msgid "Input quantity for price calculation" msgstr "Quantidade para o cálculo de preço" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Categoria da Peça" @@ -6867,7 +6879,7 @@ msgstr "Uma parte com este Nome, IPN e Revisão já existe." msgid "Parts cannot be assigned to structural part categories!" msgstr "Peças não podem ser atribuídas a categorias estruturais!" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Nome da peça" @@ -7006,159 +7018,159 @@ msgstr "Proprietário responsável por esta peça" msgid "Last Stocktake" msgstr "Último Balanço" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Venda múltipla" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "Moeda usada para armazenar os cálculos de preços" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "Custo Mínimo da LDM" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "Custo mínimo das peças componentes" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "Custo Máximo da LDM" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "Custo máximo das peças componentes" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "Custo Mínimo de Compra" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "Custo mínimo histórico de compra" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "Custo Máximo de Compra" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "Custo máximo histórico de compra" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "Preço Interno Mínimo" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "Custo mínimo baseado nos intervalos de preço internos" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "Preço Interno Máximo" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "Custo máximo baseado nos intervalos de preço internos" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "Preço Mínimo do Fornecedor" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "Preço mínimo da peça de fornecedores externos" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "Preço Máximo do Fornecedor" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "Preço máximo da peça de fornecedores externos" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "Custo Mínimo variável" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "Custo mínimo calculado das peças variáveis" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "Custo Máximo Variável" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "Custo máximo calculado das peças variáveis" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "Sobrepor o custo mínimo" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "Sobrepor o custo máximo" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "Custo total mínimo calculado" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "Custo total máximo calculado" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "Preço Mínimo de Venda" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "Preço mínimo de venda baseado nos intervalos de preço" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "Preço Máximo de Venda" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "Preço máximo de venda baseado nos intervalos de preço" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "Custo Mínimo de Venda" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "Preço histórico mínimo de venda" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "Custo Máximo de Venda" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "Preço histórico máximo de venda" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "Peça para Balanço" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "Total de Itens" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "Número de entradas de estoques individuais no momento do balanço" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "Estoque total disponível no momento do balanço" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "Estoque total disponível no momento do balanço" msgid "Date" msgstr "Data" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "Data de realização do balanço" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "Notas adicionais" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "Usuário que fez o balanço" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "Custo Mínimo de Estoque" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "Custo mínimo estimado de estoque disponível" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "Custo Máximo de Estoque" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "Custo máximo estimado de estoque disponível" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Reportar" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "Arquivo de Relatório de Balanço (gerado internamente)" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Contagem de Peças" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "Número de peças cobertas pelo Balanço" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "Usuário que solicitou este relatório de balanço" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "Escolhas devem ser únicas" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Nome de Teste" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "Insira um nome para o teste" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Descrição do Teste" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "Digite a descrição para este teste" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Habilitado" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Requerido" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "Este teste é obrigatório passar?" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Requer Valor" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "Este teste requer um valor ao adicionar um resultado de teste?" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Anexo obrigatório" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "Este teste requer um anexo ao adicionar um resultado de teste?" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Escolhas" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "Parâmetros da caixa de seleção não podem ter unidades" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "Os parâmetros da caixa de seleção não podem ter escolhas" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "Nome do modelo de parâmetro deve ser único" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "Nome do Parâmetro" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "Unidades físicas para este parâmetro" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "Descrição do Parâmetro" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Caixa de seleção" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "Este parâmetro é uma caixa de seleção?" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "Opções válidas para este parâmetro (separadas por vírgulas)" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "Escolha inválida para valor do parâmetro" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "Peça Paternal" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Modelo de parâmetro" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Valor do Parâmetro" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Valor Padrão" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "Valor Padrão do Parâmetro" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "ID da peça ou nome da peça" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "Valor exclusivo do ID de peça" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "Valor da parte IPN" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "Nível" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "Nível da LDM" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Selecione a Peça Parental" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "Sub peça" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "Selecionar peça a ser usada na LDM" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "Quantidade de LDM para este item LDM" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "Este item LDM é opcional" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Este item LDM é consumível (não é rastreado nos pedidos de construção)" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Excedente" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Quantidade estimada de desperdício (absoluto ou porcentagem)" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "Referência do Item LDM" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "Notas do Item LDM" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "Soma de verificação" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "Soma de Verificação da LDM da linha" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Validado" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "O item da LDM foi validado" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Obtém herdados" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Este item da LDM é herdado por LDMs para peças variáveis" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Itens de estoque para as peças das variantes podem ser usados para este item LDM" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "Quantidade deve ser valor inteiro para peças rastreáveis" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "Sub peça deve ser especificada" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "Substituir Item da LDM" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "A peça de substituição não pode ser a mesma que a peça mestre" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "Item LDM Parental" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "Substituir peça" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "Parte 1" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "Parte 2" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "Selecionar Peça Relacionada" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "Relacionamento da peça não pode ser criada com ela mesma" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "Relação duplicada já existe" @@ -8593,7 +8605,7 @@ msgstr "Imagem da peça não encontrada" msgid "Part Pricing" msgstr "Preço Peça" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "Fornece suporte para escanear códigos de barras TME" msgid "The Supplier which acts as 'TME'" msgstr "O fornecedor que atua como 'TME'" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Plugin instalado com sucesso" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Plugin instalado na {path}" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "Plugin de Câmbio de exemplo" msgid "InvenTree Contributors" msgstr "Contribuidores do InvenTree" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "URL de origem" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "Nenhum objeto válido fornecido para o modelo" @@ -9518,7 +9586,7 @@ msgstr "Resultados do teste" msgid "Test" msgstr "Teste" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Resultado" @@ -9892,7 +9960,7 @@ msgstr "A quantidade não corresponde aos números de série" msgid "Serial numbers already exist" msgstr "Números de série já existem" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "Códigos de estado do estoque devem corresponder" msgid "StockItem cannot be moved as it is not in stock" msgstr "Item do estoque não pode ser realocado se não houver estoque da mesma" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "Observações de entrada" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "Deve-se fornecer o valor desse teste" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "O anexo deve ser enviado para este teste" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Resultado do teste" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "Valor da saída do teste" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "Anexo do resultado do teste" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "Notas do teste" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po index 2e8485d378..cbdfbe2521 100644 --- a/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/pt_BR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-10 00:20\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-17 23:19\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -65,9 +65,9 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Alemão" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grego" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Inglês" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Espanhol" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Espanhol (mexicano)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persa" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francês" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Coreano" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" -msgstr "Polonês" +msgid "Latvian" +msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" -msgstr "Português" +msgid "Dutch" +msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" -msgstr "Romeno" +msgid "Polish" +msgstr "Polonês" #: InvenTree/locales.py:44 -msgid "Russian" -msgstr "Russo" +msgid "Portuguese" +msgstr "Português" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" -msgstr "Esloveno" +msgid "Romanian" +msgstr "Romeno" #: InvenTree/locales.py:47 -msgid "Serbian" -msgstr "" +msgid "Russian" +msgstr "Russo" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "Esloveno" + +#: InvenTree/locales.py:50 +msgid "Serbian" +msgstr "" + +#: InvenTree/locales.py:51 +msgid "Swedish" +msgstr "" + +#: InvenTree/locales.py:52 msgid "Thai" msgstr "" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turco" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ucraniano" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Chinês (simplificado)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Chinês (tradicional)" @@ -364,7 +368,7 @@ msgstr "Chinês (tradicional)" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Erro de servidor" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Arquivo de dados" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Quantidade necessária para o pedido de produção" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po index bd090a035b..2a380a1fea 100644 --- a/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ro/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -65,9 +65,9 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po index d28f088a2c..89937bfdf5 100644 --- a/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/ru/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -65,9 +65,9 @@ msgstr "Введите дату" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Удаленный сервер вернул пустой ответ" msgid "Supplied URL is not a valid image file" msgstr "Предоставленный URL не является допустимым файлом изображения" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Арабский" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Болгарский" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Чешский" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Датский" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Немецкий" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Греческий" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Английский" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Испанский" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Испанский (Мексика)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Эстонский" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Фарси / Персидский" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Финский" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Французский" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Хинди" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Венгерский" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Итальянский" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Японский" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Корейский" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Латышский" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Голландский" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Польский" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Португальский" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Португальский (Бразильский диалект)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Румынский" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Русский" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Словацкий" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Словенский" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Сербский" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Шведский" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Тайский" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Украинский" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Китайский (Упрощенный)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Китайский (Традиционный)" @@ -364,7 +368,7 @@ msgstr "Китайский (Традиционный)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Войти в приложение" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Повторяющиеся имена не могут существов msgid "Invalid choice" msgstr "Неверный выбор" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Название" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Ошибка сервера" msgid "An error has been logged by the server." msgstr "Сервер зарегистрировал ошибку." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Должно быть действительным номером" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Выберите валюту из доступных вариантов msgid "Username" msgstr "Имя пользователя" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Имя" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Имя пользователя" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Фамилия" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Фамилия пользователя" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Электронный адрес пользователя" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Персонал" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Имеет ли этот пользователь права персонала" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Суперпользователь" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Это пользователь является суперпользователем" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Это пользователь является суперпользо msgid "Active" msgstr "Активный" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Активна эта учетная запись" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "У вас недостаточно прав для изменения роли этого пользователя." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Только суперпользователи могут создавать новых пользователей" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Ваша учётная запись была успешно создана." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Пожалуйста, используйте функцию сброса пароля для входа" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Добро пожаловать в InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Неверное значение" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Файл данных" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Выберите файл данных для загрузки" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Неподдерживаемый тип файла" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Файл слишком большой" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Столбцы в файле не найдены" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Строки данных в файле не найдены" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Строки данных в файле не найдены" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Столбцы данных не предоставлены" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Отсутствует обязательный столбец: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Повторяющийся столбец: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Удаленное изображение" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "ССЫЛКА файла изображения на удаленном сервере" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Загрузка изображений с удаленного URL-адреса не включена" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Заказ на производство должен быть отменен перед удалением" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Заказ на производство должен быть отме msgid "Consumable" msgstr "Расходники" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Зарезервировано" msgid "Available" msgstr "Доступно" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Доступно" msgid "Build Order" msgstr "Заказ на производство" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Ссылка на заказ на производство" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Заказ на производство, которому принад #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Пользователь, ответственный за этот за msgid "External Link" msgstr "Внешняя ссылка" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Ссылка на внешний URL" @@ -1110,7 +1114,7 @@ msgstr "Заказ на производство {build} был завершен msgid "A build order has been completed" msgstr "Заказ на производство был завершен" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Продукция не указана" @@ -1122,37 +1126,37 @@ msgstr "Продукция уже произведена" msgid "Build output does not match Build Order" msgstr "Продукция не совпадает с заказом на производство" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Количество должно быть больше нуля" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "Количество не может быть больше количества продукции" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "Сборка {serial} не прошла все необходимые тесты" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "Номер позиции для производства" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Объект производства" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Объект производства" msgid "Quantity" msgstr "Количество" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Требуемое количество для заказа на производство" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Элемент производства должен указать продукцию, как главную деталь помеченную как отслеживаемая" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Резервируемое количество ({q}) не должно превышать доступное количество на складе ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Складская позиция перераспределена" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Резервируемое количество должно быть больше нуля" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Количество должно быть 1 для сериализованных запасов" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "Выбранная складская позиция не соответствует позиции в BOM" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "Выбранная складская позиция не соответ msgid "Stock Item" msgstr "Складская позиция" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Исходная складская позиция" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Количество на складе для производства" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Установить в" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Целевая складская позиция" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Наименование детали" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Упаковка" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Код детали" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "IPN детали" @@ -1667,13 +1671,13 @@ msgstr "Отслеживание" msgid "Inherited" msgstr "Унаследованные" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Разрешить разновидности" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Позиция BOM" @@ -2145,19 +2149,19 @@ msgstr "Незавершенная продукция" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "Ссылка" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "Файл" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "У пользователя нет прав на удаление этого вложения" @@ -2350,7 +2354,7 @@ msgstr "Как часто обновлять курс валют (установ #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "дней" @@ -2578,7 +2582,7 @@ msgstr "Скопировать параметры по шаблону катег msgid "Copy category parameter templates when creating a part" msgstr "Копировать параметры по шаблону категории при создании детали" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Исключить складские позиции во внешних местах хранения из инвентаризации" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Автоматический период инвентаризации" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Количество дней между автоматической записью запасов (установите нулевое значение для отключения)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "Интервал удаления журнала ошибок" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Журналы ошибок будут удалены после указанного количества дней" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "Показывать полные имена пользователей" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "Отображать полные имена пользователей вместо логинов" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "Включить данные тестовой станции" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "Включить сбор данных с тестовой станции для получения результатов тестирования" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Ключ настроек (должен быть уникальным - не чувствителен к регистру)" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Скрыть неактивные детали" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Скрывать неактивные части в результатах, отображаемых на главной странице," -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Показывать детали, на которые включены уведомления" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Показывать детали, на которые включены уведомления, на главной странице" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Показывать категории, на которые включены уведомления" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Показывать категории, на которые включены уведомления, на главной странице" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Показывать последние детали" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Показывать последние детали на главной странице" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "Показывать недопустимые спецификации" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Показывать BOMы, ожидающие проверки, на главной странице" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Показывать изменившиеся складские запасы" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Показывать складские позиции с недавно изменившимися запасами на главной странице" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Показывать низкие складские запасы" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Показывать складские позиции с низкими запасами на главной странице" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Показывать закончившиеся складские позиции" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Показывать закончившиеся складские позиции на главной странице" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Показывать требуемые складские позиции" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Показывать требуемые для производства складские позиции на главной странице" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Показывать складские позиции с истекшим сроком годности" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Показывать складские позиции с истёкшим сроком годности на главной странице" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Показывать залежалые складские позиции" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Показывать складские позиции с истекающим сроком годности на главной странице" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Показывать незавершённые производства" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Показывать незавершённые производства на главной странице" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Показывать просроченные производства" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Показывать просроченные производства на главной странице" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Показать невыполненные заказы" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Покажите невыполненные заказы на покупку на главной странице" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Показать просроченные заказы на производство" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Показывать просроченные сборки на главной странице" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Показать невыполненные заказы" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Покажите невыполненные заказы на покупку на главной странице" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Показать просроченные заказы на продажу" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Показывать просроченные заказы на покупку на главной странице" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Показывать новости" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Принтер этикетки по умолчанию" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Настроить принтер этикеток по умолчанию" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Отображение встроенного отчета" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Отображение PDF-этикетки в браузере вместо загрузки в виде файла" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Поиск Деталей" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Отображение деталей в окне предварительного просмотра поиска" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Поиск деталей поставщика" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Новая деталь производителя" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Отображение деталей поставщика в окне предварительного просмотра поиска" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Скрыть неактивные детали" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Исключить неактивные детали из окна предварительного просмотра поиска" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Категории поиска" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Отображение деталей в окне предварительного просмотра поиска" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Поиск Запасов" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Отображать складские позиции в окне предварительного просмотра поиска" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Скрыть недоступные складские позиции" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Исключить недоступные складские позиции из окна предварительного просмотра поиска" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Поиск мест хранения" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Отображать места хранения в окне предварительного просмотра поиска" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Поиск компаний" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Поиск заказов на производство" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Отображать заказы на производство в окне предварительного просмотра поиска" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Поиск заказов на покупку" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Поиск заказов на продажу" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Поиск заказов на возврат" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Поиск по Regex" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Фиксированная панель навигации" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Формат даты" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Планирование деталей" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Инвентаризация детали" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Пользователь" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "Цена" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Конечная точка" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "Токен" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Токен для доступа" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Секрет" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "ID Сообщения" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "Хост" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Заголовок" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Тело" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Работал над" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "Код" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Заголовок" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Заголовок" msgid "Link" msgstr "Ссылка" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Опубликовано" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Автор" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Итого" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Читать" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "Изображение" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Файл изображения" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "Название единицы" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Символ" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Определение" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Вложения" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Файл не найден" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Отсутствует внешняя ссылка" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Выберите файл для вложения" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Комментарий" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Ключ" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "Запущен" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "Ожидающие задачи" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Запланированные задания" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "Невыполненные Задачи" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "Код задачи" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "Уникальный ID задачи" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "Заблокировать" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Время блокировки" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Название задачи" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Функция" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Имя функции" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Аргументы" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Аргументы задачи" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Имя файла" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Наименование параметра" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Значение параметра" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "Описание детали поставщика" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "Описание детали поставщика" msgid "Note" msgstr "Запись" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "базовая стоимость" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "Кол-во в упаковке" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "множественные" @@ -5204,7 +5216,7 @@ msgstr "Номер строки" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "Данные" @@ -6557,12 +6569,12 @@ msgstr "Используется в" msgid "Building" msgstr "Производится" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Минимальная Стоимость" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Максимальная Стоимость" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Общий запас" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Категория детали" @@ -6867,7 +6879,7 @@ msgstr "Часть с таким именем, IPN и ревизией уже с msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Наименование детали" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "Последняя инвентаризация" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Продать несколько" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "Минимальная Стоимость BOM" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "Максимальная Стоимость BOM" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "Количество Элементов" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "Дата" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "Дополнительные Записи" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Отчет" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Количество Деталей" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Название теста" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "Введите имя для теста" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Описание теста" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "Введите описание для этого теста" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Включено" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Требуется" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Требуется значение" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Варианты" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "Название параметра" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "Описание параметра" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Чекбокс" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "Родительская деталь" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Шаблон параметра" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Значение Параметра" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Значение по умолчанию" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "Код или наименование детали" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "Значение IPN" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "Уровень" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "Уровень BOM" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Выберите родительскую деталь" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "Суб-деталь" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "Выбрать деталь для использования в BOM" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Эта позиция - расходник. (она не отслеживается в заказах на производство)" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Перерасход" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Расчетное количество перерасходов производства (абсолютное или процентное)" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "Записи о позиции BOM" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "Контрольная сумма" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Проверен" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Складские позиции для разновидностей деталей могут быть использованы для этой позиции BOM" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "Для отслеживаемых деталей количество должно быть целым числом" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "Позиция BOM-родителя" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "Замена детали" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "Часть 1" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "Часть 2" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "Выберите связанную часть" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "Изображение детали не найдено" msgid "Part Pricing" msgstr "Цена Детали" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "Исходная ссылка" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "Результаты тестирования" msgid "Test" msgstr "Тестирование" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Результат" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "Серийные номера уже существуют" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Результат тестирования" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "Записи Тестирования" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po index 05c492fe69..07e4ef2363 100644 --- a/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Language: sk_SK\n" @@ -65,9 +65,9 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po index 8891feadc5..699b8310bc 100644 --- a/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sl/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -65,9 +65,9 @@ msgstr "Vnesi datum" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Oddaljeni server vrnil prazen odziv" msgid "Supplied URL is not a valid image file" msgstr "Podani URL ni veljavna slikovna datoteka" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bolgarščina" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Češko" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danščina" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Nemščina" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grščina" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Angleščina" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Španščina" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Španščina (Mehiško)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Perzijsko" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finščina" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francoščina" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebrejščina" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindujščina" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Madžarščina" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italijanščina" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonščina" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korejščina" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Latvijščina" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nizozemščina" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norveščina" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Poljščina" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugalščina" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugalščina (Brazilsko)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruščina" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovaščina" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovenščina" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Srbščina" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Švedščina" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tajščina" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turščina" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamščina" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kitajščina (poenostavljena)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kitajščina (tradicionalno)" @@ -364,7 +368,7 @@ msgstr "Kitajščina (tradicionalno)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Prijavite se v aplikacijo" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Podvojena imena ne morejo obstajati pod istim nadrejenim elementom" msgid "Invalid choice" msgstr "Nedovoljena izbira" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Ime" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Napaka strežnika" msgid "An error has been logged by the server." msgstr "Zaznana napaka na strežniku." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Mora biti veljavna številka" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Izberite valuto med razpoložljivimi možnostmi" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Nimate dovoljenja za spreminjanje vloge tega uporabnika." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Samo superuporabniki lahko ustvarijo nove uporabnike" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Vaš račun je bil ustvarjen." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Za prijavo uporabite funkcijo ponastavitve gesla" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Dobrodošli v InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Neveljavna vrednost" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Podatki datoteke" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Izberite datoteke za naložiti" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Nepodprta vrsta datotek" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Datoteka je prevelika" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "V datoteki ni bilo najdenih stolpcev" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "V datoteki ni bilo njadenih vrstic" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Niso bile podane vrste s podatki" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Niso bili podani stolpci s podatki" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Manjka obvezni stolpec: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Dvojni stolpec: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Oddaljena slika" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "Povezava do oddaljene slike" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Prenos slik iz oddaljene povezave ni omogočen" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Izgradnja mora biti najprej preklicana, nato je lahko izbrisana" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "Nalog izgradnje" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Referenca naloga izgradnje" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Nalog izgradnje na katerega se ta izgradnaj nanaša" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "Zunanja povezava" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Zunanja povezava" @@ -1110,7 +1114,7 @@ msgstr "Nalog izgradnje {build} je dokončan" msgid "A build order has been completed" msgstr "Nalog izgradnej dokončan" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Ni določena izgradnja" @@ -1122,37 +1126,37 @@ msgstr "Igradnja je že dokončana" msgid "Build output does not match Build Order" msgstr "Izgradnja se ne ujema s nalogom izdelave" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "Količina" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Izdelana postavka mora imeti izgradnjo, če je glavni del označen kot sledljiv" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Prestavljena zaloga ({q}) ne sme presegati zaloge ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Preveč zaloge je prestavljene" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Prestavljena količina mora biti večja od 0" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Količina za zalogo s serijsko številko mora biti 1" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "Postavka zaloge" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Izvorna postavka zaloge" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Količina zaloge za prestavljanje za izgradnjo" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Inštaliraj v" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Destinacija postavke zaloge" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Uporabnik" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "Povezava" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Priloga" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Manjka datoteka" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Manjka zunanja povezava" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Izberite prilogo" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Ime datoteke" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po index d90490eb27..6d549ae78c 100644 --- a/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -65,9 +65,9 @@ msgstr "Unesite datum" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Udaljeni server vratio je prazan odgovor" msgid "Supplied URL is not a valid image file" msgstr "Navedeni URL nije važeća slikovna datoteka" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bugarski" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Češki" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danski" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Nemački" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grčki" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engleski" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Španski" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Španski (Meksiko)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persijski" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finski" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Francuski" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Jevrejski" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindu" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Mađarski" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italijanski" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japanski" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korejski" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Holandski" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norveški" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Poljski" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugalski" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugalski (Brazil)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ruski" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovenski" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Srpski" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Švedski" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tajlandski" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turski" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vijetnamski" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kineski (Uprošćeni)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kineski (Tradicionalni)" @@ -364,7 +368,7 @@ msgstr "Kineski (Tradicionalni)" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Dvostruka imena ne mogu postojati pod istom nadredjenom grupom" msgid "Invalid choice" msgstr "Nevažeći izvor" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Ime" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Greška servera" msgid "An error has been logged by the server." msgstr "Server je zabležio grešku." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Mora biti važeći broj" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Odaberite valutu među dostupnim opcijama" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Nemate dozvolu za promenu ove korisničke uloge." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Samo superkorisnici mogu kreirati nove korisnike" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Nevažeća vrednost" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Datoteka" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Odaberite datoteku za učitavanje" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Nije podržan tip datoteke" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Prevelika datoteka" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Nisu pronađene kolone podataka u datoteci" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Nisu pronađeni redovi podataka u datoteci" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Nisu navedeni redovi podataka" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Nisu obezbeđene kolone podataka" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Nedostaje potrebna kolona: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicirana kolona: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Udaljena slika" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL udaljene slike" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Preuzimanje slika s udaljenog URL-a nije omogućeno" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "Nalog za izradu" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Reference naloga za pravljenje" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Link za eksterni URL" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Korisnik" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Prilog" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Nedostaje datoteka" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Nedostaje eksterni link" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Izaberite datoteku za prilog" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Komentar" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Ime datoteke" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po index f5f843f1d4..682627c010 100644 --- a/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/sv/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-17 00:00\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -65,9 +65,9 @@ msgstr "Ange datum" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Fjärrservern returnerade tomt svar" msgid "Supplied URL is not a valid image file" msgstr "Angiven URL är inte en giltig bildfil" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arabiska" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgariska" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tjeckiska" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danska" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tyska" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Grekiska" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Engelska" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanska" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanska (Mexikanska)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estniska" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persiska" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finska" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Franska" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebreiska" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Ungerska" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italienska" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japanska" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Koreanska" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Lettiska" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norska" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polska" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portugisiska" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portugisiska (brasiliansk)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Rumänska" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Ryska" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovakiska" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovenska" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbiska" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Svenska" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thailändska" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukrainska" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Kinesiska (Förenklad)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Kinesiska (Traditionell)" @@ -364,7 +368,7 @@ msgstr "Kinesiska (Traditionell)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Logga in på appen" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "Ogiltigt val" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Namn" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Serverfel" msgid "An error has been logged by the server." msgstr "Ett fel har loggats av servern." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Måste vara ett giltigt nummer" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Välj valuta från tillgängliga alternativ" msgid "Username" msgstr "Användarnamn" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Förnamn" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Förnamn på användaren" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Efternamn" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Efternamn på användaren" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Avsändarens E-postadress" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personal" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Har den här användaren behörighet för personal" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Superanvändare" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Är den här användaren en superanvändare" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Är den här användaren en superanvändare" msgid "Active" msgstr "Aktiv" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Är detta användarkonto aktivt" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Du har inte behörighet att ändra denna användarrollen." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Endast superanvändare kan skapa nya användare" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Ditt konto har skapats." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Använd funktionen för lösenordsåterställning för att logga in" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Välkommen till InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Ogiltigt värde" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Datafil" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Välj fil för uppladdning" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Filtypen stöds inte" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Filen är för stor" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Inga kolumner hittades i filen" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Inga rader hittades i filen" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Inga rader angivna" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Inga datakolumner har angetts" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Saknar obligatorisk kolumn: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Duplicerad kolumn: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Fjärransluten bild" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL för fjärrbildsfil" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Nedladdning av bilder från fjärr-URL är inte aktiverad" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Tillverkningen måste avbrytas innan den kan tas bort" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Tillverkningen måste avbrytas innan den kan tas bort" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Allokerad" msgid "Available" msgstr "Tillgänglig" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Tillgänglig" msgid "Build Order" msgstr "Byggorder" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Tillverknings order referens" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Tillverknings order till vilken detta produkt är tilldelad" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "Extern länk" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Länk till extern URL" @@ -1110,7 +1114,7 @@ msgstr "Tillverknings order {build} har slutförts" msgid "A build order has been completed" msgstr "En tillverknings order har slutförts" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Ingen byggutgång angiven" @@ -1122,37 +1126,37 @@ msgstr "Byggutgång är redan slutförd" msgid "Build output does not match Build Order" msgstr "Byggutgång matchar inte bygg order" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "Antal" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Byggobjekt måste ange en byggutgång, eftersom huvuddelen är markerad som spårbar" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Tilldelad kvantitet ({q}) får inte överstiga tillgängligt lagersaldo ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Lagerposten är överallokerad" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Allokeringsmängden måste vara större än noll" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Antal måste vara 1 för serialiserat lager" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "Artikel i lager" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Källa lagervara" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Lagersaldo att allokera för att bygga" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Installera till" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Destination lagervara" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "Ofullständig produktion" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "dagar" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Aktivera projektkoder" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Visa nyheter" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Sök efter artiklar" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Sök efter leverantörsartikel" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Sök efter tillverkarartikel" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Datumformat" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Användare" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "Länk" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "Bild" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Bilaga" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Saknad fil" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Extern länk saknas" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Välj fil att bifoga" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Kommentar" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "Filstorlek" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" -msgstr "" +msgstr "Etikett" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "Färg" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Schemalagda uppgifter" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Filnamn" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "Datum" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po index 5d33e833aa..7b68782c37 100644 --- a/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/th/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-17 00:00\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -65,9 +65,9 @@ msgstr "ป้อนวันที่" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" -msgstr "ภาษาโปรตุเกส" +msgid "Dutch" +msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" -msgstr "ภาษารัสเซีย" +msgid "Portuguese" +msgstr "ภาษาโปรตุเกส" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 +msgid "Russian" +msgstr "ภาษารัสเซีย" + +#: InvenTree/locales.py:48 +msgid "Slovak" +msgstr "" + +#: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "" + +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "ภาษาสวีเดน" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "ภาษาไทย" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "ภาษาเวียดนาม" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "ชื่อ" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "เกิดข้อผิดพลาดที่เซิร์ฟเ msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "ต้องเป็นตัวเลข" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "ยินดีต้อนรับเข้าสู่ Inventree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "ไฟล์ข้อมูล" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "เลือกไฟล์ข้อมูลที่จะอัปโหลด" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "ไฟล์มีขนาดใหญ่เกินไป" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "จำนวนต้องมีค่ามากกว่า 0" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "ผู้ใช้งาน" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "ลิงก์" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "ไฟล์แนบ" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "ไม่พบไฟล์" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "เลือกไฟล์ที่ต้องการแนบ" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "ความคิดเห็น" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "ชื่อไฟล์" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po index d27a18301c..a12271b100 100644 --- a/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/tr/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-10 18:16\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-17 00:00\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -65,9 +65,9 @@ msgstr "Tarih giriniz" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Uzak sunucu boş cevap döndü" msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "Arapça" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarca" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Çekçe" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danca" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Almanca" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Yunanca" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "İngilizce" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "İspanyolca(Meksika)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "Estonca" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsça" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Fince" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Fransızca" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hintçe" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Macarca" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japonca" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korece" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Letonca" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portekizce" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portekizce (Brezilya)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "Romen" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Rusça" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovakça" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovakça" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Sırpça" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tay dili" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Ukraynaca" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamca" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Çince (Basitleştirilmiş)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Çince (Geleneksel)" @@ -364,7 +368,7 @@ msgstr "Çince (Geleneksel)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Uygulamaya giriş yap" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Aynı kaynak altında birden fazla aynı isim kullanılamaz" msgid "Invalid choice" msgstr "Geçersiz seçim" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Adı" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Sunucu Hatası" msgid "An error has been logged by the server." msgstr "Bir hafta sunucu tarafından kayıt edildi." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Geçerli bir numara olmalı" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Var olan seçeneklerden bir döviz birimi seçin" msgid "Username" msgstr "Kullanıcı Adı" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Adı" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "Kullanıcının adı" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Soyadı" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "Kullanıcının soyadı" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Kullanıcının e-posta adresi" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Personel" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "Bu kullanıcının personel izinleri var mı" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "Süper Kullanıcı" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "Bu kullanıcı bir süper kullanıcı mı" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "Bu kullanıcı bir süper kullanıcı mı" msgid "Active" msgstr "Aktif" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "Bu kullanıcı hesabı etkin mi" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Bu kullanıcı rolünü değiştirmek için izniniz yok." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Sadece süper kullanıcılar yeni kullanıcı oluşturabilir" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Kullanıcı hesabınız oluşturulmuştur." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Giriş yapmak için lütfen şifre sıfırlama fonksiyonunu kullanınız" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "InvenTree'ye Hoşgeldiniz" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Geçersiz değer" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Veri Dosyası" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Yüklemek istediğiniz dosyayı seçin" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Desteklenmeyen dsoya tipi" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Dosya boyutu çok büyük" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Dosyada kolon bulunamadı" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Dosyada satır bulunamadı" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Dosyada satır bulunamadı" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Dosyada uygun kolon bulunamadı" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Gerekli kolon ismi eksik:'{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Tekrarlanan kolon ismi:'{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Uzaktan Görüntüler" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "Uzaktan görüntü dosya URL'si" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Uzak URL'den resim indirmek etkinleştirilmedi" @@ -759,7 +763,7 @@ msgstr "Atanılan Kişi" msgid "Build must be cancelled before it can be deleted" msgstr "Yapımın silinebilmesi için önce iptal edilmesi gerekir" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Yapımın silinebilmesi için önce iptal edilmesi gerekir" msgid "Consumable" msgstr "Sarf Malzemesi" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Ayrıldı" msgid "Available" msgstr "Mevcut" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Mevcut" msgid "Build Order" msgstr "Yapım İşi Emri" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Yapım İşi Emri Referansı" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Bu yapım işinin tahsis edildiği yapım işi emri" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Bu yapım siparişinden sorumlu kullanıcı veya grup" msgid "External Link" msgstr "Harici Bağlantı" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Harici URL'ye bağlantı" @@ -1079,7 +1083,7 @@ msgstr "Yapım Önceliği" #: build/models.py:385 msgid "Priority of this build order" -msgstr "" +msgstr "Bu yapım siparişinin önceliği" #: build/models.py:392 common/models.py:137 common/models.py:151 #: order/admin.py:18 order/api.py:128 order/models.py:298 @@ -1095,22 +1099,22 @@ msgstr "Proje Kodu" #: build/models.py:393 msgid "Project code for this build order" -msgstr "" +msgstr "Bu yapım siparişi için proje kodu" #: build/models.py:652 build/models.py:779 msgid "Failed to offload task to complete build allocations" -msgstr "" +msgstr "Yapıma ayrılanları tamamlamak için boşaltma görevi başarısız oldu" #: build/models.py:674 #, python-brace-format msgid "Build order {build} has been completed" -msgstr "" +msgstr "{build} yapım siparişi tamamlandı" #: build/models.py:680 msgid "A build order has been completed" -msgstr "" +msgstr "Bir yapım siparişi tamamlandı" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Yapım işi çıktısı belirtilmedi" @@ -1122,37 +1126,37 @@ msgstr "Yapım işi çıktısı zaten tamamlanmış" msgid "Build output does not match Build Order" msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" -msgstr "" +msgstr "Miktar sıfırdan büyük olmalıdır" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" -msgstr "" +msgstr "Miktar çıktı miktarından büyük olamaz" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" -msgstr "" +msgstr "{serial} yapım çıktısı gerekli testleri geçemedi" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" -msgstr "" +msgstr "Yapım Siparişi Satır Ögesi" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" -msgstr "" +msgstr "Nesne yap" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "Miktar" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" -msgstr "" +msgstr "Yapım siparişi için gereken miktar" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" -msgstr "" +msgstr "Ayrılan miktar ({q}) mevcut stok miktarını ({a}) aşmamalı" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Stok kalemi fazladan tahsis edilmiş" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Seri numaralı stok için miktar bir olmalı" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" -msgstr "" +msgstr "Seçilen stok ögesi malzeme listesi satırıyla eşleşmiyor" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,64 +1245,64 @@ msgstr "" msgid "Stock Item" msgstr "Stok Kalemi" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Kaynak stok kalemi" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Yapım işi için tahsis edilen stok miktarı" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Kurulduğu yer" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Hedef stok kalemi" #: build/serializers.py:107 msgid "Build Level" -msgstr "" +msgstr "Yapım Düzeyi" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" -msgstr "" +msgstr "Parça Adı" #: build/serializers.py:127 msgid "Project Code Label" -msgstr "" +msgstr "Proje Kodu Etiketi" #: build/serializers.py:133 msgid "Create Child Builds" -msgstr "" +msgstr "Alt Yapımlar Oluştur" #: build/serializers.py:134 msgid "Automatically generate child build orders" -msgstr "" +msgstr "Alt yapım siparişlerini otomatik olarak -üret" #: build/serializers.py:216 build/serializers.py:968 #: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 msgid "Build Output" -msgstr "" +msgstr "Yapım Çıktısı" #: build/serializers.py:228 msgid "Build output does not match the parent build" -msgstr "" +msgstr "Yapım çıktısı üst yapım ile eşleşmiyor" #: build/serializers.py:232 msgid "Output part does not match BuildOrder part" -msgstr "" +msgstr "Çıktı parçası Yapım Siparişi parçası ile eşleşmiyor" #: build/serializers.py:236 msgid "This build output has already been completed" -msgstr "" +msgstr "Bu yapım çıktısı zaten tamamlandı" #: build/serializers.py:247 msgid "This build output is not fully allocated" -msgstr "" +msgstr "Bu yapım çıktısı tam ayrılmadı" #: build/serializers.py:267 build/serializers.py:314 msgid "Enter quantity for build output" @@ -1306,11 +1310,11 @@ msgstr "Yapım işi çıktısı için miktarını girin" #: build/serializers.py:335 msgid "Integer quantity required for trackable parts" -msgstr "" +msgstr "İzlenebilir parçalar için tamsayı miktar gerekir" #: build/serializers.py:338 msgid "Integer quantity required, as the bill of materials contains trackable parts" -msgstr "" +msgstr "Malzeme listesi izlenebilir parçalar içerdiğinden tamsayı miktar gereklidir" #: build/serializers.py:353 order/serializers.py:679 order/serializers.py:1468 #: stock/serializers.py:687 templates/js/translated/purchase_order.js:1154 @@ -1344,27 +1348,27 @@ msgstr "Konum" #: build/serializers.py:360 msgid "Stock location for build output" -msgstr "" +msgstr "Yapım çıktısı için stok konumu" #: build/serializers.py:374 msgid "Auto Allocate Serial Numbers" -msgstr "" +msgstr "Seri Numaralarını Otomatik Ayır" #: build/serializers.py:375 msgid "Automatically allocate required items with matching serial numbers" -msgstr "" +msgstr "Gerekli ögeleri eşleşen seri numaralarıyla otomatik ayır" #: build/serializers.py:390 msgid "Serial numbers must be provided for trackable parts" -msgstr "" +msgstr "İzlenebilir parçalar için seri numaraları sağlanmalıdır" #: build/serializers.py:415 stock/api.py:1024 msgid "The following serial numbers already exist or are invalid" -msgstr "" +msgstr "Şu seri numaraları zaten varlar veya geçersizler" #: build/serializers.py:462 build/serializers.py:524 build/serializers.py:613 msgid "A list of build outputs must be provided" -msgstr "" +msgstr "Bir yapım çıktıları listesi sağlanmalıdır" #: build/serializers.py:501 msgid "Stock location for scrapped outputs" @@ -1512,7 +1516,7 @@ msgstr "Öge stokta olmalıdır" #: build/serializers.py:993 order/serializers.py:1355 #, python-brace-format msgid "Available quantity ({q}) exceeded" -msgstr "Kullanılabilir miktar ({q}) aşıldı" +msgstr "Mevcut miktar ({q}) aşıldı" #: build/serializers.py:999 msgid "Build output must be specified for allocation of tracked parts" @@ -1560,7 +1564,7 @@ msgstr "İsteğe Bağlı Ögeler" #: build/serializers.py:1120 msgid "Allocate optional BOM items to build order" -msgstr "Sipariş yapmak için isteğe bağlı BOM ögelerini ayır" +msgstr "Sipariş yapmak için isteğe bağlı ML ögelerini ayır" #: build/serializers.py:1142 msgid "Failed to start auto-allocation task" @@ -1585,7 +1589,7 @@ msgstr "Yapım Referansı" #: build/serializers.py:1229 msgid "BOM Reference" -msgstr "BOM Referansı" +msgstr "ML Referansı" #: build/serializers.py:1230 company/models.py:849 #: company/templates/company/supplier_part.html:160 order/serializers.py:691 @@ -1600,27 +1604,27 @@ msgid "Packaging" msgstr "Paketleme" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "Parça ID" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "Parça DPN" #: build/serializers.py:1236 build/serializers.py:1326 part/admin.py:45 #: part/stocktake.py:220 msgid "Part Description" -msgstr "" +msgstr "Parça Açıklaması" #: build/serializers.py:1239 msgid "BOM Part ID" -msgstr "" +msgstr "ML Parça Kimliği" #: build/serializers.py:1240 msgid "BOM Part Name" -msgstr "" +msgstr "ML Parça Adı" #: build/serializers.py:1243 #: report/templates/report/inventree_return_order_report.html:25 @@ -1642,19 +1646,19 @@ msgstr "Seri Numara" #: templates/js/translated/build.js:1020 templates/js/translated/build.js:1167 #: templates/js/translated/build.js:2519 msgid "Allocated Quantity" -msgstr "" +msgstr "Ayrılan Miktar" #: build/serializers.py:1257 stock/templates/stock/item_base.html:336 msgid "Available Quantity" -msgstr "" +msgstr "Mavcut Miktar" #: build/serializers.py:1327 msgid "Part Category ID" -msgstr "" +msgstr "Parça Sınıfı Kimliği" #: build/serializers.py:1328 msgid "Part Category Name" -msgstr "" +msgstr "Parça Sınıfı Adı" #: build/serializers.py:1335 common/models.py:1515 part/admin.py:113 #: part/models.py:1178 templates/js/translated/table_filters.js:150 @@ -1665,23 +1669,23 @@ msgstr "Takip Edilebilir" #: build/serializers.py:1336 msgid "Inherited" -msgstr "" +msgstr "Miras Alındı" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Çeşide İzin Ver" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" -msgstr "" +msgstr "ML Ögesi" #: build/serializers.py:1350 build/templates/build/detail.html:236 #: build/templates/build/sidebar.html:16 templates/js/translated/index.js:130 msgid "Allocated Stock" -msgstr "" +msgstr "Ayrılan Stok" #: build/serializers.py:1355 order/serializers.py:1179 part/admin.py:132 #: part/bom.py:186 part/serializers.py:918 part/serializers.py:1621 @@ -1690,35 +1694,35 @@ msgstr "" #: templates/js/translated/part.js:2155 #: templates/js/translated/table_filters.js:177 msgid "On Order" -msgstr "" +msgstr "Siparişte" #: build/serializers.py:1360 order/serializers.py:1180 part/serializers.py:1623 #: templates/js/translated/build.js:2811 #: templates/js/translated/table_filters.js:367 msgid "In Production" -msgstr "" +msgstr "Üretimde" #: build/serializers.py:1365 part/bom.py:185 part/serializers.py:1648 #: part/templates/part/part_base.html:192 #: templates/js/translated/sales_order.js:1929 msgid "Available Stock" -msgstr "" +msgstr "Mevcut Stok" #: build/serializers.py:1369 msgid "Available Substitute Stock" -msgstr "" +msgstr "Mevcut Yedek Stok" #: build/serializers.py:1370 msgid "Available Variant Stock" -msgstr "" +msgstr "Mevcut Turev Stoku" #: build/serializers.py:1371 msgid "Total Available Stock" -msgstr "" +msgstr "Toplam Mevcut Stok" #: build/serializers.py:1372 part/serializers.py:925 msgid "External Stock" -msgstr "" +msgstr "Harici Stok" #: build/status_codes.py:11 generic/states/tests.py:21 #: generic/states/tests.py:131 order/status_codes.py:12 @@ -1734,7 +1738,7 @@ msgstr "Üretim" #: build/status_codes.py:13 order/status_codes.py:14 order/status_codes.py:49 #: order/status_codes.py:79 msgid "On Hold" -msgstr "" +msgstr "Beklemede" #: build/status_codes.py:14 order/status_codes.py:16 order/status_codes.py:51 #: order/status_codes.py:82 @@ -1751,7 +1755,7 @@ msgstr "Tamamlandı" #: build/tasks.py:180 msgid "Stock required for build order" -msgstr "" +msgstr "Yapım siparişi için gereken stok" #: build/tasks.py:233 msgid "Overdue Build Order" @@ -2145,19 +2149,19 @@ msgstr "Tamamlanmamış Çıktılar" msgid "Test Statistics" msgstr "Test İstatistikleri" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "Link Olanlar" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "Dosya Olanlar" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "Kullanıcının bu ekleri silmek için izni yok" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "Kullanıcının bu eki silmek için izni yok" @@ -2350,7 +2354,7 @@ msgstr "Döviz kurlarını şu sıklıkla güncelle (etkisizleştirmek için sı #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "günler" @@ -2468,59 +2472,59 @@ msgstr "Web arayüzünde barkod tarayıcı desteğini etkinleştir" #: common/models.py:1402 msgid "Barcode Input Delay" -msgstr "" +msgstr "Barkod Girdi Gecikmesi" #: common/models.py:1403 msgid "Barcode input processing delay time" -msgstr "" +msgstr "Barkod girdi işleme gecikme süresi" #: common/models.py:1409 msgid "Barcode Webcam Support" -msgstr "" +msgstr "Barkod Web Kamerası Desteği" #: common/models.py:1410 msgid "Allow barcode scanning via webcam in browser" -msgstr "" +msgstr "Tarayıcıda web kamerası aracılığıyla barkod taramaya izin ver" #: common/models.py:1415 msgid "Barcode Show Data" -msgstr "" +msgstr "Barkod Verisini Göster" #: common/models.py:1416 msgid "Display barcode data in browser as text" -msgstr "" +msgstr "Barkod verisini tarayıcıda metin olarak görüntüle" #: common/models.py:1421 msgid "Barcode Generation Plugin" -msgstr "" +msgstr "Barkod Üreteci Eklentisi" #: common/models.py:1422 msgid "Plugin to use for internal barcode data generation" -msgstr "" +msgstr "Dahili barkod üretimi için kullanılacak eklenti" #: common/models.py:1427 msgid "Part Revisions" -msgstr "" +msgstr "Parça Revizyonları" #: common/models.py:1428 msgid "Enable revision field for Part" -msgstr "" +msgstr "Parça için revizyon alanını etkinleştir" #: common/models.py:1433 msgid "Assembly Revision Only" -msgstr "" +msgstr "Yalnızca Montaj Revizyonu" #: common/models.py:1434 msgid "Only allow revisions for assembly parts" -msgstr "" +msgstr "Yalnızca montaj parçaları için revizyona izin ver" #: common/models.py:1439 msgid "Allow Deletion from Assembly" -msgstr "" +msgstr "Montajdan Silmeye İzin Ver" #: common/models.py:1440 msgid "Allow deletion of parts which are used in an assembly" -msgstr "" +msgstr "Bir montajda kullanılan parçaları silmeye izin ver" #: common/models.py:1445 msgid "IPN Regex" @@ -2548,27 +2552,27 @@ msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver" #: common/models.py:1461 msgid "Copy Part BOM Data" -msgstr "" +msgstr "Parça ML Verisini Kopyala" #: common/models.py:1462 msgid "Copy BOM data by default when duplicating a part" -msgstr "" +msgstr "Bir parçayo çoğaltırken varsayılan olarak ML verisini kopyala" #: common/models.py:1467 msgid "Copy Part Parameter Data" -msgstr "" +msgstr "Parça Parametre Verisini Kopyala" #: common/models.py:1468 msgid "Copy parameter data by default when duplicating a part" -msgstr "" +msgstr "Bir parçayı çoğaltırken varsayılan olarak parametre verisini kopyala" #: common/models.py:1473 msgid "Copy Part Test Data" -msgstr "" +msgstr "Parça Test Verisini Kopyala" #: common/models.py:1474 msgid "Copy test data by default when duplicating a part" -msgstr "" +msgstr "Bir parçayı çoğaltırken varsayılan olarak test verisini kopyala" #: common/models.py:1479 msgid "Copy Category Parameter Templates" @@ -2578,7 +2582,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -2637,11 +2641,11 @@ msgstr "Parçalar varsayılan olarak sanaldır" #: common/models.py:1527 msgid "Show Import in Views" -msgstr "" +msgstr "Görünümlerde İçe Aktarmayı Göster" #: common/models.py:1528 msgid "Display the import wizard in some part views" -msgstr "" +msgstr "Bazı parça görünümlerinde içe aktarma sihirbazını görüntüle" #: common/models.py:1533 msgid "Show related parts" @@ -2649,39 +2653,39 @@ msgstr "İlgili parçaları göster" #: common/models.py:1534 msgid "Display related parts for a part" -msgstr "" +msgstr "Bir parça için ilgili parçaları göster" #: common/models.py:1539 msgid "Initial Stock Data" -msgstr "" +msgstr "Başlangıç Stok Verisi" #: common/models.py:1540 msgid "Allow creation of initial stock when adding a new part" -msgstr "" +msgstr "Yeni bir parça eklerken başlangıç stoku oluşturmaya izin ver" #: common/models.py:1545 templates/js/translated/part.js:108 msgid "Initial Supplier Data" -msgstr "" +msgstr "Başlangıç Sağlayıcı Verisi" #: common/models.py:1547 msgid "Allow creation of initial supplier data when adding a new part" -msgstr "" +msgstr "Yeni bir parça oluştururken başlangıç sağlayıcı verisi oluşturmaya izin ver" #: common/models.py:1553 msgid "Part Name Display Format" -msgstr "" +msgstr "Parça Adı Görüntüleme Biçimi" #: common/models.py:1554 msgid "Format to display the part name" -msgstr "" +msgstr "Parça adını görüntüleme biçimi" #: common/models.py:1560 msgid "Part Category Default Icon" -msgstr "" +msgstr "Parça Sınıfının Varsayılan Simgesi" #: common/models.py:1561 msgid "Part category default icon (empty means no icon)" -msgstr "" +msgstr "Parça sınıfı için varsayılan simge (boş bırakılırsa simge kullanılmaz)" #: common/models.py:1566 msgid "Enforce Parameter Units" @@ -2886,15 +2890,15 @@ msgstr "Stok öğelerinin son kullanma tarihi geçmeden eskimiş sayıldığı g #: common/models.py:1756 msgid "Build Expired Stock" -msgstr "" +msgstr "Yapımın Süresi Geçmiş Stoku" #: common/models.py:1757 msgid "Allow building with expired stock" -msgstr "" +msgstr "Süresi geçmiş stok ile yapıma izin ver" #: common/models.py:1762 msgid "Stock Ownership Control" -msgstr "" +msgstr "Stok Sahipliği Kontrolü" #: common/models.py:1763 msgid "Enable ownership control over stock locations and items" @@ -2902,48 +2906,48 @@ msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin" #: common/models.py:1768 msgid "Stock Location Default Icon" -msgstr "" +msgstr "Varsayılan Stok Konumu Simgesi" #: common/models.py:1769 msgid "Stock location default icon (empty means no icon)" -msgstr "" +msgstr "Stok konumu için varsayılan simge (boşsa simge yok demektir)" #: common/models.py:1774 msgid "Show Installed Stock Items" -msgstr "" +msgstr "Kurulu Stok Ögelerini Göster" #: common/models.py:1775 msgid "Display installed stock items in stock tables" -msgstr "" +msgstr "Stok tablolarında kurulu stok ögelerini göster" #: common/models.py:1780 msgid "Check BOM when installing items" -msgstr "" +msgstr "Ögelerin kurulumunu yaparken ML'i kontrol et" #: common/models.py:1782 msgid "Installed stock items must exist in the BOM for the parent part" -msgstr "" +msgstr "Kurulu stok ögeleri üst parçanın ML'nde mevcut olmalıdır" #: common/models.py:1788 msgid "Allow Out of Stock Transfer" -msgstr "" +msgstr "Stok Dışı Aktarıma İzin Ver" #: common/models.py:1790 msgid "Allow stock items which are not in stock to be transferred between stock locations" -msgstr "" +msgstr "Stokta olmayan ögelerin stok konumları arasında aktarılmasına izin ver" #: common/models.py:1796 msgid "Build Order Reference Pattern" -msgstr "" +msgstr "Yapım Siparişi Referans Kalıbı" #: common/models.py:1798 msgid "Required pattern for generating Build Order reference field" -msgstr "" +msgstr "Yapım Siparişi referans alanını üretmek için gerekli kalıp" #: common/models.py:1804 common/models.py:1860 common/models.py:1882 #: common/models.py:1918 msgid "Require Responsible Owner" -msgstr "" +msgstr "Sorumlu Sahip Gerektir" #: common/models.py:1805 common/models.py:1861 common/models.py:1883 #: common/models.py:1919 @@ -3148,43 +3152,43 @@ msgstr "" #: common/models.py:2007 msgid "Automatically fill out user-details from SSO account-data" -msgstr "" +msgstr "Kullanıcı ayrıntılarını TOA hesabı verisinden otomatik olarak doldur" #: common/models.py:2013 msgid "Mail twice" -msgstr "" +msgstr "Postayı iki kez gir" #: common/models.py:2014 msgid "On signup ask users twice for their mail" -msgstr "" +msgstr "Hesap oluştururken kullanıcıların postalarını iki kez girmelerini iste" #: common/models.py:2019 msgid "Password twice" -msgstr "" +msgstr "Şifreyi iki kez gir" #: common/models.py:2020 msgid "On signup ask users twice for their password" -msgstr "" +msgstr "Hesap oluştururken kullanıcıların şifrelerini iki kez girmesini iste" #: common/models.py:2025 msgid "Allowed domains" -msgstr "" +msgstr "Alanlara izin ver" #: common/models.py:2027 msgid "Restrict signup to certain domains (comma-separated, starting with @)" -msgstr "" +msgstr "Belirli alanlara hesap açmayı kısıtla (virgülle ayrılmış, @ ile başlayan)" #: common/models.py:2033 msgid "Group on signup" -msgstr "" +msgstr "Hesap oluştururken grup" #: common/models.py:2035 msgid "Group to which new users are assigned on registration. If SSO group sync is enabled, this group is only set if no group can be assigned from the IdP." -msgstr "" +msgstr "Yeni kullanıcıların kayıt sırasında atanacağı grup. Eğer TOA grup eşitlemesi etkinse, yalnızca ıdP'den hiçbir grup atanamazsa bu grup ayarlanır." #: common/models.py:2041 msgid "Enforce MFA" -msgstr "" +msgstr "ÇFKD'yi Zorunlu Kıl" #: common/models.py:2042 msgid "Users must use multifactor security." @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Formlarda Miktarı Göster" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Kullanıcı" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "Fiyat" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "Bağlantı" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "Resim" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Ek" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Eksik dosya" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Bozuk dış bağlantı" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Yorum" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Dosya adı" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Parametre adı" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Parametre değeri" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "Not" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "temel maliyet" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "çoklu" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Parça adı" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Test Adı" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Test Açıklaması" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Etkin" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Gerekli" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "Testi geçmesi için bu gerekli mi?" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "Parametre şablon adı benzersiz olmalıdır" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Parametre Şablonu" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "Şablon için geçerli bir nesne sağlanmadı" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "Miktar seri numaları ile eşleşmiyor" msgid "Serial numbers already exist" msgstr "Seri numaraları zaten mevcut" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "Stok kalemi stokta olmadığı için taşınamaz" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po index 58445e9d92..16bfb8ccb9 100644 --- a/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/uk/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-17 00:00\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -65,9 +65,9 @@ msgstr "Введіть дату" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 +msgid "Slovenian" +msgstr "" + +#: InvenTree/locales.py:50 +msgid "Serbian" +msgstr "" + +#: InvenTree/locales.py:51 +msgid "Swedish" +msgstr "" + +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Тайська" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Турецька" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "Українська" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "В’єтнамська" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Китайська (спрощена)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Китайська (Традиційна)" @@ -364,7 +368,7 @@ msgstr "Китайська (Традиційна)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Увійти в додаток" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Ім`я" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Прізвище" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "Адреса електронної пошти користувача" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "Персонал" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po index 60fd1cf40e..40683b7380 100644 --- a/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/vi/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-17 04:20\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -65,9 +65,9 @@ msgstr "Nhập ngày" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "Máy chủ trả về phản hồi trống" msgid "Supplied URL is not a valid image file" msgstr "URL được cung cấp không phải là tệp hình ảnh hợp lệ" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Tiếng Bulgaria" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Tiếng Séc" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Tiếng Đan Mạch" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "Tiếng Đức" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Tiếng Hy Lạp" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "Tiếng Anh" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Tiếng Tây Ban Nha" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Tiếng Tây Ban Nha (Mê-hi-cô)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Tiếng Ba Tư" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Tiếng Phần Lan" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "Tiếng Pháp" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Tiếng Do Thái" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Tiếng Ấn Độ" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Tiếng Hung-ga-ri" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Tiếng Ý" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Tiếng Nhật" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Tiếng Hàn" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Tiếng Hà Lan" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Tiếng Na Uy" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Tiếng Ba Lan" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Tiếng Bồ Đào Nha" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Tiếng Bồ Đào Nha (Brazil)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Tiếng Nga" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Tiếng Slo-va-ki-a" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Tiếng Slô-ven-ni-a" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Tiếng Serbia" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Tiếng Thụy Điển" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Tiếng Thái" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Tiếng Thổ Nhĩ Kỳ" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Tiếng Việt" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "Tiếng Trung (Giản thể)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "Tiếng Trung (Phồn thể)" @@ -364,7 +368,7 @@ msgstr "Tiếng Trung (Phồn thể)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] Đăng nhập vào ứng dụng" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "Tên trùng lặp không thể tồn tại trong cùng cấp thư mục" msgid "Invalid choice" msgstr "Lựa chọn sai" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "Tên" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "Lỗi máy chủ" msgid "An error has been logged by the server." msgstr "Lỗi đã được ghi lại bởi máy chủ." -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "Phải là một số hợp lệ" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "Chọn tiền tệ trong các tùy chọn đang có" msgid "Username" msgstr "Tên người dùng" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "Tên" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "Họ" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "Hoạt động" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "Bạn không có quyền thay đổi vai trò của người dùng này." -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "Chỉ có siêu người dùng là có thể tạo người dùng mới" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "Tài khoản của bạn đã được tạo." -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "Xin hãy sử dụng chức năng tạo lại mật khẩu để đăng nhập" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "Chào mừng đến với InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "Giá trị không hợp lệ" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "Tập tin dữ liệu" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "Chọn tệp tin để tải lên" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "Loại tệp tin không được hỗ trợ" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "Tệp tin quá lớn" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "Không tìm thấy cột nào trong tệp tin" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "Không tìm thấy dòng nào trong tệp tin" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "Chưa có dữ liệu" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "Chưa cung cấp cột dữ liệu" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "Thiếu cột bắt buộc: '{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "Nhân bản cột: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "Hình ảnh từ xa" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "URL của tệp hình ảnh bên ngoài" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "Chức năng tải hình ảnh từ URL bên ngoài không được bật" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa được" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "Bạn dựng phải được hủy bỏ trước khi có thể xóa đư msgid "Consumable" msgstr "Vật tư tiêu hao" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "Đã cấp phát" msgid "Available" msgstr "Có sẵn" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "Có sẵn" msgid "Build Order" msgstr "Tạo đơn hàng" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "Tham chiếu đơn đặt bản dựng" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "Đơn đặt bản dựng với bản dựng này đã được phân b #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "Người dùng hoặc nhóm có trách nhiệm với đơn đặt bản msgid "External Link" msgstr "Liên kết bên ngoài" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "Liên kết đến URL bên ngoài" @@ -1110,7 +1114,7 @@ msgstr "Đơn đặt bản dựng {build} đã được hoàn thành" msgid "A build order has been completed" msgstr "Một đơn đặt bản dựng đã được hoàn thành" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "Không có đầu ra bản dựng đã được chỉ ra" @@ -1122,37 +1126,37 @@ msgstr "Đầu ra bản dựng đã được hoàn thiện" msgid "Build output does not match Build Order" msgstr "Đầu ra bản dựng không phù hợp với đơn đặt bản dựng" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "Số lượng phải lớn hơn 0" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "Số lượng không thể lớn hơn số lượng đầu ra" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "Dựng đối tượng" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "Dựng đối tượng" msgid "Quantity" msgstr "Số lượng" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "Yêu cầu số lượng để dựng đơn đặt" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "Xây dựng mục phải xác định đầu ra, bởi vì sản phẩm chủ được đánh dấu là có thể theo dõi" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "Số lượng được phân bổ ({q}) không thể vượt quá số lượng có trong kho ({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "Kho hàng đã bị phân bổ quá đà" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "Số lượng phân bổ phải lớn hơn 0" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "Số lượng phải là 1 cho kho sê ri" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "Hàng trong kho đã chọn không phù hợp với đường BOM" msgid "Stock Item" msgstr "Kho hàng" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "Kho hàng gốc" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "Số lượng kho hàng cần chỉ định để xây dựng" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "Cài đặt vào" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "Kho hàng đích" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "Tên sản phẩm" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "Đóng gói" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "ID sản phẩm" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "IPN sản phẩm" @@ -1667,13 +1671,13 @@ msgstr "Có thể theo dõi" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "Cho phép biến thể" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "Mục BOM" @@ -2145,19 +2149,19 @@ msgstr "Đầu ra chưa hoàn thiện" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "Mức độ thường xuyên để cập nhật tỉ giá hối đoái ( #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "ngày" @@ -2578,7 +2582,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:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "Bật phần mở rộng để trả lời sự kiện bên trong" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "Bật mã dự án" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "Bật mã dự án để theo dõi dự án" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "Chức năng kiểm kê" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "Bật chức năng kiểm kê theo mức độ ghi nhận kho và tính toán giá trị kho" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "Ngoại trừ vị trí bên ngoài" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "Loại trừ hàng trong kho thuộc địa điểm bên ngoài ra khỏi tính toán kiểm kê" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "Giai đoạn kiểm kê tự động" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "Số ngày giữa ghi chép kiểm kê tự động (đặt không để tắt)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "Khoảng thời gian xóa báo cáo" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "Báo cáo kiểm kê sẽ bị xóa sau số ngày xác định" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "Hiển thị tên đầy đủ của người dùng" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "Hiển thị tên đầy đủ thay vì tên đăng nhập" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "Khóa thiết lập (phải duy nhất - phân biệt hoa thường" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "Ẩn sản phẩm bị tắt trong kết quả trình bày tại trang chủ" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "Hiện sản phẩm đã đăng ký" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "Hiện sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "Hiện danh mục đã đăng ký" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "Hiện danh mục sản phẩm đã đăng ký trên trang chủ" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "Hiển thị nguyên liệu mới nhất" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "Hiện BOM chờ xác thực tại trang chủ" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "Hiện thay đổi kho hàng gần đây" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "Hiện hàng trong kho được thay đổi gần nhất trên trang chủ" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "Hiển thị hàng còn ít" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "Hiển thị hàng hóa còn ít tại trang chủ" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "Hiển thị hết hàng" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "Hiển thị hàng hóa đã bán hết tại trang chủ" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "Hiển thị hàng cần thiết" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "Hiện hàng trong kho cần thiết cho xây dựng tại trang chủ" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "Bán kho quá hạn" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "Hiển thị hàng hóa đã quá hạn trên trang chủ" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "Hiện kho hàng ế" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "Hiện hàng trong kho bị ế trên trang chủ" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "Hiện bản dựng chờ xử lý" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "Hiện bản dựng chờ xử lý trên trang chủ" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "Hiện bản dựng quá hạn" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "Hiện bản dựng quá hạn trên trang chủ" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "Hiện PO nổi bật" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "Hiện PO nổi bật trên trang chủ" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "Hiện PO quá hạn" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "Hiện đơn mua hàng quá hạn trên trang chủ" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "Hiện đơn hàng vận chuyển nổi bật" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "Hiện đơn hàng vận chuyển nổi bật tại trang chủ" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "Hiện đơn vận chuyển quá hạn" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "Hiện đơn vận chuyển quá hạn trên trang chủ" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "Hiện đơn vận chuyển chờ xử lý" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "Hiện đơn vận chuyển chờ xử lý trên trang chủ" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "Hiện tin tức" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "Hiện tin tức trên trang chủ" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "Hiển thị nhãn cùng dòng" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "Hiển thị nhãn PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "Máy in tem nhãn mặc định" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "Cấu hình máy in tem nhãn nào được chọn mặc định" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "Hiển thị báo cáo cùng hàng" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "Hiện báo cáo PDF trong trình duyệt, thay vì tải về dạng tệp tin" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "Tìm sản phẩm" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "Hiện hàng hóa trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "Tìm sản phẩm nhà cung cấp" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "Hiện sản phẩm nhà cung cấp trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "Tìm sản phẩm nhà sản xuất" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "Hiện sản phẩm nhà sản xuất trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "Ẩn sản phẩm ngừng hoạt động" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "Loại trừ sản phẩm ngưng hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "Tìm kiếm danh mục" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "Hiện danh mục sản phẩm trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "Tìm kiếm kho" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "Hiện hàng hóa ở kho trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "Ẩn hàng hóa trong kho không có sẵn" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "Không bao gồm hàng hóa trong kho mà không sẵn sàng từ màn hình xem trước tìm kiếm" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "Tìm kiếm vị trí" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "Hiện vị trí kho hàng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "Tìm kiếm công ty" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "Hiện công ty trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "Tìm kiếm đặt hàng xây dựng" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "Hiện đơn đặt xây dựng trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "Tìm kiếm đơn đặt mua" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "Hiện đơn đặt mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "Loại trừ đơn đặt mua không hoạt động" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "Loại trừ đơn đặt mua không hoạt động ra khỏi cửa sổ xem trước tìm kiếm" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "Tìm đơn đặt hàng người mua" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "Hiện đơn đặt hàng người mua trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "Loại trừ đơn đặt hàng người mua không hoạt động" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "Không bao gồm đơn đặt hàng người mua không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "Tìm kiếm đơn hàng trả lại" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "Hiện đơn hàng trả lại trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "Loại trừ đơn hàng trả lại không hoạt động" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "Không bao gồm đơn hàng trả lại không hoạt động trong cửa sổ xem trước tìm kiếm" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "Kết quả xem trước tìm kiếm" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "Số kết quả cần hiển thị trong từng phần của cửa sổ xem trước tìm kiếm" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "Tìm kiếm biểu thức" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "Bật tìm kiếm biểu thức chính quy trong câu truy vấn tìm kiếm" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "Tìm phù hợp toàn bộ chữ" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "Truy vấn tìm trả về kết quả phù hợp toàn bộ chữ" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "Hiện số lượng trong biểu mẫu" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "Hiển thị số lượng sản phẩm có sẵn trong một số biểu mẫu" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "Phím escape để đóng mẫu biểu" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "Sử dụng phím escape để đóng mẫu biểu hộp thoại" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "Cố định điều hướng" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "Vị trí thành điều hướng là cố định trên cùng màn hình" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "Định dạng ngày" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "Định dạng ưa chuộng khi hiển thị ngày" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "Lập lịch sản phẩm" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "Hiển thị thông tin lịch sản phẩm" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "Kiểm kê sản phẩm" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "Hiển thị thông tin kiểm kê sản phẩm (nếu chức năng kiểm kê được bật)" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "Độ dài chuỗi trong bảng" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "Giới hạn độ dài tối đa cho chuỗi hiển thị trong kiểu xem bảng biểu" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "Nhận báo cáo lỗi" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "Nhận thông báo khi có lỗi hệ thống" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "Người dùng" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "Số lượng giá phá vỡ" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "Số lượng giá phá vỡ" msgid "Price" msgstr "Giá" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "Đơn vị giá theo số lượng cụ thể" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "Đầu mối" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "Đầu mối tại điểm webhook được nhận" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "Tên của webhook này" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "Webhook có hoạt động không" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "Chữ ký số" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "Chữ ký số để truy cập" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "Bí mật" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "Mã bí mật dùng chung cho HMAC" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "Mã Tin nhắn" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "Định danh duy nhất cho tin nhắn này" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "Máy chủ" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "Mãy chủ từ tin nhắn này đã được nhận" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "Đầu mục" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "Đầu mục tin nhắn" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "Thân" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "Thân tin nhắn này" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "Đầu mối của tin nhắn này đã nhận được" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "Làm việc vào" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "Công việc trong tin nhắn này đã kết thúc?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "Mã" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "Tiêu đề" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "Tiêu đề" msgid "Link" msgstr "Liên kết" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "Đã công bố" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "Tác giả" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "Tóm tắt" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "Đọc" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "Tin này đã được đọc?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "Tin này đã được đọc?" msgid "Image" msgstr "Hình ảnh" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "Tệp ảnh" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "Tên đơn vị phải là một định danh hợp lệ" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "Tên đơn vị" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "Biểu tượng" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "Biểu tượng đơn vị tùy chọn" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "Định nghĩa" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "Định nghĩa đơn vị" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "Đính kèm" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "Tập tin bị thiếu" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "Thiếu liên kết bên ngoài" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "Chọn file đính kèm" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "Bình luận" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "Khóa" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "Hàng đã nhận theo đơn hàng trả lại" msgid "Error raised by plugin" msgstr "Lỗi được thông báo bởi phần mở rộng" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "Đang chạy" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "Công việc chờ xử lý" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "Tác vụ theo lịch" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "Tác vụ thất bại" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "ID tác vụ" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "ID tác vụ duy nhất" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "Khoá" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "Thời gian khóa" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "Tên công việc" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "Chức năng" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "Tên chức năng" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "Đối số" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "Đối số công việc" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "Đối số từ khóa" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "Đối số từ khóa công việc" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "Tên tập tin" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "Tên tham số" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "Giá trị tham số" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "Mô tả sản phẩm nhà cung cấp" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "Mô tả sản phẩm nhà cung cấp" msgid "Note" msgstr "Ghi chú" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "chi phí cơ sở" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "Thu phí tối thiểu (vd: phí kho bãi)" @@ -4618,7 +4630,7 @@ msgstr "Số lượng gói" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "Tổng số lượng được cung cấp trong một gói đơn. Để trống cho các hàng hóa riêng lẻ." -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "nhiều" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "Dữ liệu" @@ -6557,12 +6569,12 @@ msgstr "Sử dụng trong" msgid "Building" msgstr "Đang dựng" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "Chi phí tối thiểu" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "Chi phí tối đa" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "Tổng số lượng" msgid "Input quantity for price calculation" msgstr "Số lượng đầu ra cho tính toán giá bán" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "Danh mục sản phẩm" @@ -6867,7 +6879,7 @@ msgstr "Sản phẩm với Tên, IPN và Duyệt lại đã tồn tại." msgid "Parts cannot be assigned to structural part categories!" msgstr "Sản phẩm không thể được phân vào danh mục sản phẩm có cấu trúc!" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "Tên sản phẩm" @@ -7006,159 +7018,159 @@ msgstr "Trách nhiệm chủ sở hữu cho sản phẩm này" msgid "Last Stocktake" msgstr "Kiểm kê cuối cùng" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "Bán nhiều" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "Tiền được dùng để làm đệm tính toán giá bán" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "Chi phí BOM tối thiểu" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối thiểu" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "Chi phí BOM tối đa" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "Chi phí thành phần sản phẩm tối đa" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "Chi phí mua vào tối thiểu" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "Chi phí mua vào tối thiểu trong lịch sử" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "Chi phí mua tối đa" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "Chi phí thành phần sản phẩm tối đa trong lịch sử" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "Giá nội bộ tối thiểu" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "Chi phí tối thiểu dựa trên phá vỡ giá nội bộ" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "Giá nội bộ tối đa" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "Chi phí tối đa dựa trên phá vỡ giá nội bộ" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "Giá nhà cung ứng tối thiểu" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "Giá sản phẩm tối thiểu từ nhà cung ứng bên ngoài" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "Giá nhà cung ứng tối đa" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "Giá sản phẩm tối đã từ nhà cung ứng bên ngoài" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "Giá trị biến thể tối thiểu" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "Chi phí tối thiểu của sản phẩm biến thể đã tính" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "Chi phí biến thể tối đa" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "Chi phí tối đa của sản phẩm biến thể đã tính" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "Ghi đề chi phí tối thiểu" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "Ghi đề chi phí tối đa" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "Chi phí tối thiểu tính toán tổng thể" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "Chi phí tối đa tính toán tổng thể" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "Giá bán thấp nhất" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "Giá bán tối thiểu dựa trên phá giá" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "Giá bán cao nhất" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "Giá bán cao nhất dựa trên phá giá" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "Chi phí bán hàng tối thiểu" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "Giá bán hàng tối thiểu trong lịch sử" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "Giá bán hàng tối đa" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "Giá bán hàng tối đa trong lịch sử" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "Sản phẩm dành cho kiểm kê" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "Tổng số hàng" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "Số mục kho độc lậo tại thời điểm kiểm kê" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "Tống số kho tại thời điểm kiểm kê" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "Tống số kho tại thời điểm kiểm kê" msgid "Date" msgstr "Ngày" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "Kiểm kê đã thực hiện" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "Ghi chú bổ sung" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "Người dùng đã thực hiện đợt kiểm kê này" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "Chi phí kho tối thiểu" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "Chi phí kho tối thiểu ước tính của kho đang có" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "Chi phí kho tối đa" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "Chi phí kho tối đa ước tính của kho đang có" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "Báo cáo" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "Tệp báo cáo kiểm kê (được sinh nội bộ)" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "Bộ đếm sản phẩm" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "Số sản phẩm đã được bao quát bởi kiểm kê" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "Người dùng đã yêu cầu báo cáo kiểm kê này" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "Lựa chọn phải duy nhất" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "Tên kiểm thử" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "Nhập tên cho kiểm thử" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "Mô tả kiểm thử" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "Nhập mô tả cho kiểm thử này" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "Đã bật" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "Bắt buộc" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "Kiểm thử này bắt buộc phải đạt?" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "Giá trị bắt buộc" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "Kiểm thử này yêu cầu 1 giá trị khi thêm một kết quả kiểm thử?" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "Yêu cầu đính kèm" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "Kiểm thử này yêu cầu tệp đính kèm khi thêm một kết quả kiểm thử?" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "Lựa chọn" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "Tham số hộp kiểm tra không thể có đơn vị" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "Tham số hộp kiểm tra không thể có lựa chọn" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "Tên tham số mẫu phải là duy nhất" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "Tên tham số" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "Đơn vị vật lý cho tham số này" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "Mô tả tham số" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "Ô lựa chọn" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "Tham số này có phải là hộp kiểm tra?" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "Lựa chọn hợp lệ từ tham số này (ngăn cách bằng dấu phẩy)" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "Lựa chọn sai cho giá trị tham số" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "Sản phẩm cha" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "Mẫu tham số" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "Giá trị tham số" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "Giá trị mặc định" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "Giá trị tham số mặc định" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "Tên hoặc mã sản phẩm" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "Giá trị mã sản phẩm duy nhất" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "Giá trị IPN sản phẩm" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "Cấp độ" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "Cấp độ BOM" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "Chọn sản phẩm cha" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "Sản phẩm phụ" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "Chọn sản phẩm được dùng trong BOM" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "Số lượng BOM cho mục BOM này" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "Mục BOM này là tùy chọn" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "Mục BOM này bị tiêu hao (không được theo dõi trong đơn đặt bản dựng)" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "Dư thừa" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Số lượng bản dựng lãng phí ước tính (tuyệt đối hoặc phần trăm)" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "Tham chiếu mục BOM" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "Ghi chú mục BOM" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "Giá trị tổng kiểm" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "Giá trị tổng kiểm dòng BOM" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "Đã xác minh" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "Mục BOM này là hợp lệ" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "Nhận thừa hưởng" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "Mục BOM này được thừa kế bởi BOM cho sản phẩm biến thể" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "Hàng trong kho cho sản phẩm biến thể có thể được dùng bởi mục BOM này" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "Số lượng phải là giá trị nguyên dùng cho sản phẩm có thể theo dõi được" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "Sản phẩm phụ phải được chỉ định" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "Sảm phẩm thay thế mục BOM" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "Sản phẩm thay thế không thể giống sản phẩm chủ đạo" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "Hàng hóa BOM cha" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "Sản phẩm thay thế" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "Sản phẩm 1" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "Sản phẩm 2" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "Chọn sản phẩm liên quan" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "Không thể tạo mối quan hệ giữa một sản phẩm và chính nó" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "Đã tồn tại mối quan hệ trùng lặp" @@ -8593,7 +8605,7 @@ msgstr "Không tìm thấy ảnh sản phẩm" msgid "Part Pricing" msgstr "Định giá sản phẩm" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "Cung cấp khả năng quét mã vạch TME" msgid "The Supplier which acts as 'TME'" msgstr "Nhà cung cấp hoạt động như 'TME'" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "Cài đặt phần mở rộng thành công" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "Cài đặt phần bổ sung đến {path}" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "Phần bổ sung trao đổi tiền tệ mẫu" msgid "InvenTree Contributors" msgstr "Người đóng góp InvenTree" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "URL nguồn" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "Chưa cung cấp đối tượng hợp lệ cho bản mẫu" @@ -9518,7 +9586,7 @@ msgstr "Kết quả kiểm tra" msgid "Test" msgstr "Thử nghiệm" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "Kết quả" @@ -9892,7 +9960,7 @@ msgstr "Số lượng không khớp với số sêri" msgid "Serial numbers already exist" msgstr "Số sêri đã tồn tại" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "Mã trạng thái kho phải phù hợp" msgid "StockItem cannot be moved as it is not in stock" msgstr "Không thể xóa mặt hàng không ở trong kho" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "Ghi chú đầu vào" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "Phải cung cấp giá trị cho kiểm thử này" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "Phải tải liên đính kèm cho kiểm thử này" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "Kết quả kiểm thử" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "Giá trị đầu ra kiểm thử" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "Đính kèm kết quả kiểm thử" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "Ghi chú kiểm thử" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po index 847e814278..17d7e18ceb 100644 --- a/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hans/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-10 00:20\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -65,9 +65,9 @@ msgstr "输入日期" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "远程服务器返回了空响应" msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "阿拉伯语" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "Bulgarian" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "Czech" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "Danish" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "German" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "Greek" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "English" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "Spanish" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "Spanish (Mexican)" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "爱沙尼亚语" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "Farsi / Persian" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "Finnish" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "French" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "Hebrew" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "Hindi" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "Hungarian" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "Italian" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "Japanese" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "Korean" -#: InvenTree/locales.py:37 +#: InvenTree/locales.py:39 +msgid "Lithuanian" +msgstr "" + +#: InvenTree/locales.py:40 msgid "Latvian" msgstr "Latvian" -#: InvenTree/locales.py:38 +#: InvenTree/locales.py:41 msgid "Dutch" msgstr "Dutch" -#: InvenTree/locales.py:39 +#: InvenTree/locales.py:42 msgid "Norwegian" msgstr "Norwegian" -#: InvenTree/locales.py:40 +#: InvenTree/locales.py:43 msgid "Polish" msgstr "Polish" -#: InvenTree/locales.py:41 +#: InvenTree/locales.py:44 msgid "Portuguese" msgstr "Portuguese" -#: InvenTree/locales.py:42 +#: InvenTree/locales.py:45 msgid "Portuguese (Brazilian)" msgstr "Portuguese (Brazilian)" -#: InvenTree/locales.py:43 +#: InvenTree/locales.py:46 msgid "Romanian" msgstr "罗马尼亚语" -#: InvenTree/locales.py:44 +#: InvenTree/locales.py:47 msgid "Russian" msgstr "Russian" -#: InvenTree/locales.py:45 +#: InvenTree/locales.py:48 msgid "Slovak" msgstr "Slovak" -#: InvenTree/locales.py:46 +#: InvenTree/locales.py:49 msgid "Slovenian" msgstr "Slovenian" -#: InvenTree/locales.py:47 +#: InvenTree/locales.py:50 msgid "Serbian" msgstr "Serbian" -#: InvenTree/locales.py:48 +#: InvenTree/locales.py:51 msgid "Swedish" msgstr "Swedish" -#: InvenTree/locales.py:49 +#: InvenTree/locales.py:52 msgid "Thai" msgstr "Thai" -#: InvenTree/locales.py:50 +#: InvenTree/locales.py:53 msgid "Turkish" msgstr "Turkish" -#: InvenTree/locales.py:51 +#: InvenTree/locales.py:54 msgid "Ukrainian" msgstr "乌克兰语" -#: InvenTree/locales.py:52 +#: InvenTree/locales.py:55 msgid "Vietnamese" msgstr "Vietnamese" -#: InvenTree/locales.py:53 +#: InvenTree/locales.py:56 msgid "Chinese (Simplified)" msgstr "中文 (简体)" -#: InvenTree/locales.py:54 +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "中文 (繁体)" @@ -364,7 +368,7 @@ msgstr "中文 (繁体)" msgid "[{site_name}] Log in to the app" msgstr "[{site_name}] 登录到应用程序" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "同一個上層元件下不能有重複的名字" msgid "Invalid choice" msgstr "無效的選項" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "名稱" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "伺服器錯誤" msgid "An error has been logged by the server." msgstr "伺服器紀錄了一個錯誤。" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "必須是有效的數字" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "從可用選項中選擇貨幣" msgid "Username" msgstr "用户名" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "名" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "用户的名字(不包括姓氏)" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "姓" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "用户的姓氏" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "用户的电子邮件地址" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "职员" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "此用户是否拥有员工权限" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "超级用户" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "此用户是否为超级用户" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "此用户是否为超级用户" msgid "Active" msgstr "激活" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "此用户帐户是否已激活" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "您沒有更改這個使用者角色的權限" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "只有管理員帳戶可以建立新的使用者" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "您的帳號已經建立完成。" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "請使用重設密碼功能來登入" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "歡迎使用 InvenTree" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "无效值" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "数据文件" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "选择要上传的数据文件" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "不支持的文件类型" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "文件过大" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "在文件中没有找到列" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "在文件中没有找到数据行" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "没有提供数据行" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "没有提供数据列" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "缺少必需的列:'{name}'" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "重复列: '{col}'" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "远程图片" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "远程图片文件的 URL" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "未启用从远程 URL下载图片" @@ -753,13 +757,13 @@ msgstr "发布者" #: build/api.py:114 msgid "Assigned To" -msgstr "已分配到" +msgstr "负责人" #: build/api.py:275 msgid "Build must be cancelled before it can be deleted" msgstr "工單必須被取消才能被刪除" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "工單必須被取消才能被刪除" msgid "Consumable" msgstr "耗材" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "已分配" msgid "Available" msgstr "可用數量" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "可用數量" msgid "Build Order" msgstr "生產工單" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "生產工單代號" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "這張生產工單對應的上層生產工單" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "負責此生產工單的使用者或群組" msgid "External Link" msgstr "外部連結" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "外部URL連結" @@ -1110,7 +1114,7 @@ msgstr "生產工單 {build} 已經完成" msgid "A build order has been completed" msgstr "一張生產工單已經完成" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "未指定产出" @@ -1122,37 +1126,37 @@ msgstr "产出已完成" msgid "Build output does not match Build Order" msgstr "产出与生产订单不匹配" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "數量必須大於零" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "数量不能大于输出数量" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "产出 {serial} 未通过所有必要测试" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "生产订单行项目" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "生产对象" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "生产对象" msgid "Quantity" msgstr "數量" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "生產工單所需數量" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "生产项必须指定产出,因为主零件已经被标记为可追踪的" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "分配的數量({q})不能超過可用的庫存數量({a})" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "庫存品項超額分配" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "分配的數量必須大於零" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "有序號的品項數量必須為1" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "選擇的庫存品項和BOM的項目不符" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "選擇的庫存品項和BOM的項目不符" msgid "Stock Item" msgstr "庫存品項" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "來源庫存項目" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "要分配的庫存數量" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "安裝到" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "目的庫存品項" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "构建等级" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "零件名称" @@ -1273,11 +1277,11 @@ msgstr "项目编码标签" #: build/serializers.py:133 msgid "Create Child Builds" -msgstr "新建子版本" +msgstr "新建子生产项目" #: build/serializers.py:134 msgid "Automatically generate child build orders" -msgstr "" +msgstr "自动生成子生成工单" #: build/serializers.py:216 build/serializers.py:968 #: templates/js/translated/build.js:1045 templates/js/translated/build.js:1498 @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "打包" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "零件编号" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "零件的内部零件号" @@ -1667,13 +1671,13 @@ msgstr "可追踪" msgid "Inherited" msgstr "已继承的" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "允许变体" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "物料清单项" @@ -2145,19 +2149,19 @@ msgstr "未完成的产出" msgid "Test Statistics" msgstr "测试统计" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "是否链接" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "是否为文件" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "用户没有权限删除此附件" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "用户没有权限删除此附件" @@ -2350,7 +2354,7 @@ msgstr "检查更新的频率(设置为零以禁用)" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "天" @@ -2578,7 +2582,7 @@ msgstr "复制类别参数模板" msgid "Copy category parameter templates when creating a part" msgstr "创建零件时复制类别参数模板" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "启用插件响应内部事件" #: common/models.py:2099 +msgid "Enable interface integration" +msgstr "" + +#: common/models.py:2100 +msgid "Enable plugins to integrate into the user interface" +msgstr "" + +#: common/models.py:2106 msgid "Enable project codes" msgstr "启用项目编码" -#: common/models.py:2100 +#: common/models.py:2107 msgid "Enable project codes for tracking projects" msgstr "启用项目编码来跟踪项目" -#: common/models.py:2105 +#: common/models.py:2112 msgid "Stocktake Functionality" msgstr "盘点功能" -#: common/models.py:2107 +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "启用盘点功能以记录库存水平和计算库存值" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "排除外部地点" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "从盘点计算中排除外部地点的库存项" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "自动盘点周期" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "自动盘点记录之间的天数 (设置为零以禁用)" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "报告删除间隔" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "盘点报告将在指定天数后删除" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "显示用户全名" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "显示用户全名而不是用户名" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "启用测试站数据" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "启用测试站数据收集以获取测试结果" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "设置键 (必须是唯一的,不区分大小写" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "隐藏非活动零件" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "隐藏主页上显示的结果中的非活动零件" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "显示已订阅的零件" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "在主页上显示已订阅的零件" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "显示已订阅的类别" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "在主页上显示已订阅的零件类别" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "显示最新零件" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "在主页上显示最新零件" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "显示无效的物料清单" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "在主页上显示等待验证的物料清单" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "显示最近的库存变动" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "在主页上显示最近更改的库存项目" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "显示低库存" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "在主页上显示低库存商品" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "显示已耗尽的库存" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "在主页上显示已耗尽的库存项目" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "显示所需库存" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "在主页上显示构建所需的库存项目" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "显示过期库存" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "在主页上显示过期的库存项目" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "显示过期库存" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "在主页上显示过期库存商品" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "显示待处理的构建" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "在主页上显示待处理的构建" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "显示过期的构建" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "在主页上显示过期的构建" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "显示出色的PO" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "在主页上显示优秀的PO" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "显示过期订单" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "在主页上显示逾期订单" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "展示杰出的SO" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "在主页上显示优秀的SO" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "显示过期的SO" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "在主页上显示过期的SO" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "显示待处理的SO发货" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "在主页上显示待处理的SO发货" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "显示新闻" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "在主页上显示新闻" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "内联标签显示" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "在浏览器中显示PDF标签,而不是作为文件下载" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "默认标签打印机" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "配置默认情况下应选择哪个标签打印机" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "内联报告显示" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "在浏览器中显示PDF报告,而不是作为文件下载" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "搜索零件" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "在搜索预览窗口中显示零件" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "搜索供应商零件" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "在搜索预览窗口中显示供应商零件" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "搜索制造商零件" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "在搜索预览窗口中显示制造商零件" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "隐藏非活动零件" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "从搜索预览窗口中排除非活动零件" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "搜索分类" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "在搜索预览窗口中显示零件类别" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "搜索库存" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "在搜索预览窗口中显示库存项目" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "隐藏不可用的库存项目" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "排除搜索预览窗口中不可用的库存项目" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "搜索地点" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "在搜索预览窗口中显示库存位置" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "搜索公司" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "在搜索预览窗口中显示公司" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "搜索生产订单" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "在搜索预览窗口中显示生产订单" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "搜索采购订单" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "在搜索预览窗口中显示采购订单" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "排除未激活的采购订单" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "从搜索预览窗口中排除不活动的采购订单" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "搜索销售订单" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "在搜索预览窗口中显示销售订单" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "排除未激活的销售订单" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "从搜索预览窗口中排除不活动的销售订单" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "搜索退货订单" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "在搜索预览窗口中显示退货订单" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "排除未激活的退货订单" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "从搜索预览窗口中排除不活动的退货订单" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "搜索预览结果" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "在搜索预览窗口的每个部分中显示的结果数" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "正则表达式搜索" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "在搜索查询中启用正则表达式" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "整词搜索" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "搜索查询返回整词匹配的结果" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "在表格中显示数量" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "以某些形式显示可用零件数量" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "Esc键关闭窗体" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "使用ESC键关闭模态窗体" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "固定导航栏" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "导航栏位置固定在屏幕顶部" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "时间格式" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "显示时间的首选格式" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "零件调度" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "显示零件排程信息" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "零件盘点" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "显示零件盘点信息 (如果启用了盘点功能)" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "表字符串长度" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "表视图中显示的字符串的最大长度限制" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "接收错误报告" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "接收系统错误通知" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "上次使用的打印设备" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "为用户保存上次使用的打印设备" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "使用者" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "批发价数量" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "批发价数量" msgid "Price" msgstr "价格" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "指定数量的单位价格" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "端点" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "接收此网络钩子的端点" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "此网络钩子的名称" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "网络钩子是否已启用" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "令牌" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "访问令牌" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "密钥" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "HMAC共享密钥" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "消息ID" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "此邮件的唯一标识符" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "主机" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "接收此消息的主机" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "标题" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "此消息的标题" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "正文" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "此消息的正文" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "接收此消息的终点" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "工作于" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "这条消息的工作完成了吗?" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "标识" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "标题" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "标题" msgid "Link" msgstr "連結" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "已发布" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "作者" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "摘要" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "阅读" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "这条新闻被阅读了吗?" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,188 +3885,188 @@ msgstr "这条新闻被阅读了吗?" msgid "Image" msgstr "图像" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "图像文件" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "此图像的目标模型类型" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "此图像的目标型号ID" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "自定义单位" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "单位符号必须唯一" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "单位名称必须是有效的标识符" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "单位名称" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "符号" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "可选单位符号" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "定义" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "单位定义" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "附件" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "缺少檔案" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "缺少外部連結" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "選擇附件" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "註解" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "附件评论" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "上传日期" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "上传文件的日期" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "文件大小" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "文件大小,以字节为单位" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "为附件指定的模型类型无效" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "键" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "将保存到模型数据库中的值" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" -msgstr "" +msgstr "状态名" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 -msgid "Label that will be displayed in the frontend" -msgstr "" - -#: common/models.py:3356 -msgid "Color" -msgstr "" - #: common/models.py:3357 +msgid "Label that will be displayed in the frontend" +msgstr "在前端显示的标签" + +#: common/models.py:3363 +msgid "Color" +msgstr "颜色" + +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" -msgstr "" +msgstr "将在前端显示颜色" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" -msgstr "" +msgstr "逻辑密钥" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" -msgstr "" +msgstr "等同于商业逻辑中自定义状态的状态逻辑键" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" -msgstr "" +msgstr "模式" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" -msgstr "" - -#: common/models.py:3375 -msgid "Reference Status Set" -msgstr "" - -#: common/models.py:3376 -msgid "Status set that is extended with this custom state" -msgstr "" +msgstr "该状态关联的模型" #: common/models.py:3382 -msgid "Custom State" -msgstr "" +msgid "Reference Status Set" +msgstr "参考状态设定" #: common/models.py:3383 +msgid "Status set that is extended with this custom state" +msgstr "使用此自定义状态扩展状态的状态集" + +#: common/models.py:3389 +msgid "Custom State" +msgstr "自定状态" + +#: common/models.py:3390 msgid "Custom States" -msgstr "" +msgstr "定制状态" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" -msgstr "" - -#: common/models.py:3401 -msgid "Key must be selected" -msgstr "" - -#: common/models.py:3404 -msgid "Logical key must be selected" -msgstr "" +msgstr "必须选定模型" #: common/models.py:3408 +msgid "Key must be selected" +msgstr "必须选取密钥" + +#: common/models.py:3411 +msgid "Logical key must be selected" +msgstr "必须选中逻辑密钥" + +#: common/models.py:3415 msgid "Key must be different from logical key" -msgstr "" +msgstr "密钥必须不同于逻辑密钥" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" -msgstr "" +msgstr "必须选中参考状态" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" -msgstr "" +msgstr "未找到参考状态集" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" -msgstr "" +msgstr "密钥必须不同于参考状态的逻辑密钥" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" -msgstr "" +msgstr "逻辑密钥必须在参考状态的逻辑键中" #: common/notifications.py:310 #, python-brace-format @@ -4090,75 +4102,75 @@ msgstr "已收到退货订单中的物品" msgid "Error raised by plugin" msgstr "插件引发的错误" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "正在运行" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "等待完成的任务" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "预定的任务" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "失败的任务" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "任务ID" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "唯一任务ID" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "锁定" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "锁定时间" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "任务名称" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "功能" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "功能名称" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "参数" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "任务参数" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "关键字参数" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "任务关键词参数" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "檔案名稱" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "模型类型" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "用户无权为此模式创建或编辑附件" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "参数名称" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "参数值" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "供应商零件说明" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "供应商零件说明" msgid "Note" msgstr "备注" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "基本费用" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "最低费用(例如库存费)" @@ -4618,7 +4630,7 @@ msgstr "包装数量" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "单包供应的总数量。为单个项目留空。" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "多个" @@ -5114,11 +5126,11 @@ msgstr "新建公司信息" #: generic/states/fields.py:118 msgid "Custom status key" -msgstr "" +msgstr "自定义状态密钥" #: generic/states/fields.py:119 msgid "Additional status information for this item" -msgstr "" +msgstr "此项目的附加状态信息" #: generic/states/tests.py:22 order/status_codes.py:13 msgid "Placed" @@ -5204,7 +5216,7 @@ msgstr "行索引" msgid "Original row data" msgstr "原始行数据" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "数据" @@ -5432,7 +5444,7 @@ msgstr "未完成" #: order/api.py:132 msgid "Has Project Code" -msgstr "" +msgstr "有项目编码" #: order/api.py:155 templates/js/translated/table_filters.js:201 #: templates/js/translated/table_filters.js:791 @@ -6557,12 +6569,12 @@ msgstr "用于" msgid "Building" msgstr "正在生产" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "最低成本" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "最高成本" @@ -6708,7 +6720,7 @@ msgstr "有修订版本" msgid "BOM Valid" msgstr "物料清单合规" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6719,11 +6731,11 @@ msgstr "类别" #: part/api.py:1754 msgid "Assembly part is testable" -msgstr "" +msgstr "装配部份是可测试的" #: part/api.py:1763 msgid "Component part is testable" -msgstr "" +msgstr "组件部份是可测试的" #: part/api.py:1814 msgid "Uses" @@ -6744,7 +6756,7 @@ msgstr "库存总量" msgid "Input quantity for price calculation" msgstr "输入用于价格计算的数量" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "零件类别" @@ -6867,7 +6879,7 @@ msgstr "有这个名字,内部零件号,和修订版本的零件已经存在 msgid "Parts cannot be assigned to structural part categories!" msgstr "零件不能分配到结构性零件类别!" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "零件名称" @@ -6949,7 +6961,7 @@ msgstr "此零件是否有唯一物品的追踪功能" #: part/models.py:1185 msgid "Can this part have test results recorded against it?" -msgstr "" +msgstr "这一部分能否记录到测试结果?" #: part/models.py:1191 msgid "Can this part be purchased from external suppliers?" @@ -7006,159 +7018,159 @@ msgstr "此零件的负责人" msgid "Last Stocktake" msgstr "最近库存盘点" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "出售多个" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "用于缓存定价计算的货币" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "最低物料清单成本" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "元件的最低成本" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "物料清单的最高成本" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "元件的最高成本" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "最低购买成本" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "最高历史购买成本" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "最大购买成本" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "最高历史购买成本" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "最低内部价格" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "基于内部批发价的最低成本" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "最大内部价格" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "基于内部批发价的最高成本" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "供应商最低价格" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "外部供应商零件的最低价格" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "供应商最高价格" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "来自外部供应商的商零件的最高价格" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "最小变体成本" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "计算出的变体零件的最低成本" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "最大变体成本" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "计算出的变体零件的最大成本" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "覆盖最低成本" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "覆盖最大成本" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "计算总最低成本" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "计算总最大成本" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "最低售出价格" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "基于批发价的最低售出价格" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "最高售出价格" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "基于批发价的最大售出价格" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "最低销售成本" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "历史最低售出价格" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "最高销售成本" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "历史最高售出价格" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "用于盘点的零件" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "物品数量" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "盘点时的个别库存条目数" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "盘点时可用库存总额" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "盘点时可用库存总额" msgid "Date" msgstr "日期" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "进行盘点的日期" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "附加注释" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "进行此盘点的用户" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "最低库存成本" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "现有存库存最低成本估算" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "最高库存成本" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "目前库存最高成本估算" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "报告" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "盘点报告文件(内部生成)" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "零件计数" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "盘点涵盖的零件数量" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "请求此盘点报告的用户" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "零件售出价格折扣" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "零件测试模板" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "模板名称无效 - 必须包含至少一个字母或者数字" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "选择必须是唯一的" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "零件已存在具有相同主键的测试模板" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "测试名" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "输入测试的名称" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "测试主键" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "简化测试主键" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "测试说明" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "输入测试的描述" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "已启用" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "此测试是否已启用?" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "必须的" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "需要此测试才能通过吗?" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "需要值" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "添加测试结果时是否需要一个值?" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "需要附件" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "添加测试结果时是否需要文件附件?" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "选项" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "此测试的有效选择 (逗号分隔)" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "零件参数模板" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "勾选框参数不能有单位" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "复选框参数不能有选项" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "参数模板名称必须是唯一的" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "参数名称" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "此参数的物理单位" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "参数说明" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "勾选框" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "此参数是否为勾选框?" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "此参数的有效选择 (逗号分隔)" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "零件参数" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "参数不能被修改 - 零件被锁定" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "无效的参数值选择" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "父零件" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "参数模板" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "参数值" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "零件类别参数模板" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "默认值" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "默认参数值" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "零件ID或零件名称" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "唯一零件ID值" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "零件内部零件号" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "级" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "物料清单级别" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "物料清单项目不能被修改 - 装配已锁定" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "物料清单项目不能修改 - 变体装配已锁定" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "选择父零件" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "子零件" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "选择要用于物料清单的零件" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "此物料清单项目的数量" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "此物料清单项目是可选的" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "这个物料清单项目是耗材 (它没有在生产订单中被追踪)" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "超量" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "估计生产物浪费量(绝对值或百分比)" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "物料清单项目引用" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "物料清单项目注释" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "校验和" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "物料清单行校验和" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "已验证" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "此物料清单项目已验证" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "获取继承的" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "此物料清单项目是由物料清单继承的变体零件" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "变体零件的库存项可以用于此物料清单项目" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "可追踪零件的数量必须是整数" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "必须指定子零件" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "物料清单项目替代品" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "替代品零件不能与主零件相同" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "上级物料清单项目" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "替代品零件" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "零件 1" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "零件2" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "选择相关的零件" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "零件关系不能在零件和自身之间创建" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "复制关系已经存在" @@ -8283,7 +8295,7 @@ msgstr "显示零件详情" #: part/templates/part/part_base.html:217 msgid "Required for Orders" -msgstr "" +msgstr "订单所需的" #: part/templates/part/part_base.html:225 #: stock/templates/stock/item_base.html:384 @@ -8593,7 +8605,7 @@ msgstr "未找到零件图片" msgid "Part Pricing" msgstr "零件价格" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "插件不能被删除,因为它当前处于激活状态" @@ -9001,44 +9013,44 @@ msgstr "为扫描 TME 条形码提供支持" msgid "The Supplier which acts as 'TME'" msgstr "作为‘TME’的供应商" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "只有员工用户可以管理插件" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "插件安装已禁用" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "插件安装成功" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "插件安装到 {path}" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "在插件仓库中找不到插件" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "插件不是一个打包的插件" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "找不到插件包名称" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "插件卸载已禁用" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "插件无法卸载,因为它目前处于激活状态" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "插件卸载成功" @@ -9156,6 +9168,38 @@ msgstr "货币兑换插件示例" msgid "InvenTree Contributors" msgstr "InvenTree 贡献者" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "源URL" @@ -9234,6 +9278,30 @@ msgstr "删除配置" msgid "Delete the plugin configuration from the database" msgstr "从数据库中删除插件配置" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" @@ -9518,7 +9586,7 @@ msgstr "测试结果" msgid "Test" msgstr "测试" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "结果" @@ -9892,7 +9960,7 @@ msgstr "数量不匹配序列号" msgid "Serial numbers already exist" msgstr "序列号已存在" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "测试模板不存在" @@ -9940,67 +10008,67 @@ msgstr "库存状态码必须匹配" msgid "StockItem cannot be moved as it is not in stock" msgstr "库存项不能移动,因为它没有库存" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "库存项跟踪" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "条目注释" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "库存项测试结果" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "必须为此测试提供值" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "测试附件必须上传" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "此测试的值无效" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "测试结果" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "测试输出值" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "测验结果附件" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "测试备注" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "测试站" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "进行测试的测试站的标识符" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "已开始" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "测试开始的时间戳" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "已完成" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "测试结束的时间戳" diff --git a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po index 107d05eb7f..8bb3d4ad99 100644 --- a/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po +++ b/src/backend/InvenTree/locale/zh_Hant/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: inventree\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-06 05:16+0000\n" -"PO-Revision-Date: 2024-09-06 05:19\n" +"POT-Creation-Date: 2024-09-16 23:56+0000\n" +"PO-Revision-Date: 2024-09-16 23:59\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -65,9 +65,9 @@ msgstr "" #: order/templates/order/po_sidebar.html:11 #: order/templates/order/return_order_sidebar.html:9 #: order/templates/order/so_sidebar.html:17 part/admin.py:59 -#: part/models.py:3309 part/templates/part/part_sidebar.html:65 +#: part/models.py:3296 part/templates/part/part_sidebar.html:65 #: report/templates/report/inventree_build_order_report.html:172 -#: stock/admin.py:231 stock/models.py:2369 stock/models.py:2554 +#: stock/admin.py:231 stock/models.py:2367 stock/models.py:2552 #: stock/serializers.py:705 stock/serializers.py:863 stock/serializers.py:989 #: stock/serializers.py:1039 stock/serializers.py:1350 #: stock/serializers.py:1439 stock/serializers.py:1604 @@ -211,151 +211,155 @@ msgstr "" msgid "Supplied URL is not a valid image file" msgstr "" -#: InvenTree/locales.py:18 +#: InvenTree/locales.py:20 msgid "Arabic" msgstr "" -#: InvenTree/locales.py:19 +#: InvenTree/locales.py:21 msgid "Bulgarian" msgstr "" -#: InvenTree/locales.py:20 +#: InvenTree/locales.py:22 msgid "Czech" msgstr "" -#: InvenTree/locales.py:21 +#: InvenTree/locales.py:23 msgid "Danish" msgstr "" -#: InvenTree/locales.py:22 +#: InvenTree/locales.py:24 msgid "German" msgstr "" -#: InvenTree/locales.py:23 +#: InvenTree/locales.py:25 msgid "Greek" msgstr "" -#: InvenTree/locales.py:24 +#: InvenTree/locales.py:26 msgid "English" msgstr "" -#: InvenTree/locales.py:25 +#: InvenTree/locales.py:27 msgid "Spanish" msgstr "" -#: InvenTree/locales.py:26 +#: InvenTree/locales.py:28 msgid "Spanish (Mexican)" msgstr "" -#: InvenTree/locales.py:27 +#: InvenTree/locales.py:29 msgid "Estonian" msgstr "" -#: InvenTree/locales.py:28 +#: InvenTree/locales.py:30 msgid "Farsi / Persian" msgstr "" -#: InvenTree/locales.py:29 +#: InvenTree/locales.py:31 msgid "Finnish" msgstr "" -#: InvenTree/locales.py:30 +#: InvenTree/locales.py:32 msgid "French" msgstr "" -#: InvenTree/locales.py:31 +#: InvenTree/locales.py:33 msgid "Hebrew" msgstr "" -#: InvenTree/locales.py:32 +#: InvenTree/locales.py:34 msgid "Hindi" msgstr "" -#: InvenTree/locales.py:33 +#: InvenTree/locales.py:35 msgid "Hungarian" msgstr "" -#: InvenTree/locales.py:34 +#: InvenTree/locales.py:36 msgid "Italian" msgstr "" -#: InvenTree/locales.py:35 +#: InvenTree/locales.py:37 msgid "Japanese" msgstr "" -#: InvenTree/locales.py:36 +#: InvenTree/locales.py:38 msgid "Korean" msgstr "" -#: InvenTree/locales.py:37 -msgid "Latvian" -msgstr "" - -#: InvenTree/locales.py:38 -msgid "Dutch" -msgstr "" - #: InvenTree/locales.py:39 -msgid "Norwegian" +msgid "Lithuanian" msgstr "" #: InvenTree/locales.py:40 -msgid "Polish" +msgid "Latvian" msgstr "" #: InvenTree/locales.py:41 -msgid "Portuguese" +msgid "Dutch" msgstr "" #: InvenTree/locales.py:42 -msgid "Portuguese (Brazilian)" +msgid "Norwegian" msgstr "" #: InvenTree/locales.py:43 -msgid "Romanian" +msgid "Polish" msgstr "" #: InvenTree/locales.py:44 -msgid "Russian" +msgid "Portuguese" msgstr "" #: InvenTree/locales.py:45 -msgid "Slovak" +msgid "Portuguese (Brazilian)" msgstr "" #: InvenTree/locales.py:46 -msgid "Slovenian" +msgid "Romanian" msgstr "" #: InvenTree/locales.py:47 -msgid "Serbian" +msgid "Russian" msgstr "" #: InvenTree/locales.py:48 -msgid "Swedish" +msgid "Slovak" msgstr "" #: InvenTree/locales.py:49 -msgid "Thai" +msgid "Slovenian" msgstr "" #: InvenTree/locales.py:50 -msgid "Turkish" +msgid "Serbian" msgstr "" #: InvenTree/locales.py:51 -msgid "Ukrainian" +msgid "Swedish" msgstr "" #: InvenTree/locales.py:52 -msgid "Vietnamese" +msgid "Thai" msgstr "" #: InvenTree/locales.py:53 -msgid "Chinese (Simplified)" +msgid "Turkish" msgstr "" #: InvenTree/locales.py:54 +msgid "Ukrainian" +msgstr "" + +#: InvenTree/locales.py:55 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/locales.py:56 +msgid "Chinese (Simplified)" +msgstr "" + +#: InvenTree/locales.py:57 msgid "Chinese (Traditional)" msgstr "" @@ -364,7 +368,7 @@ msgstr "" msgid "[{site_name}] Log in to the app" msgstr "" -#: InvenTree/magic_login.py:38 InvenTree/serializers.py:413 +#: InvenTree/magic_login.py:38 InvenTree/serializers.py:416 #: company/models.py:133 company/templates/company/company_base.html:138 #: templates/InvenTree/settings/user.html:49 #: templates/js/translated/company.js:677 @@ -419,9 +423,9 @@ msgstr "" msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:767 common/models.py:2698 common/models.py:3125 -#: common/models.py:3345 common/serializers.py:439 company/models.py:590 -#: machine/models.py:24 part/models.py:995 part/models.py:3776 +#: InvenTree/models.py:767 common/models.py:2705 common/models.py:3132 +#: common/models.py:3352 common/serializers.py:455 company/models.py:590 +#: machine/models.py:24 part/models.py:995 part/models.py:3763 #: plugin/models.py:51 report/models.py:149 stock/models.py:82 #: templates/InvenTree/settings/mixins/urls.html:13 #: templates/InvenTree/settings/notifications.html:17 @@ -446,7 +450,7 @@ msgstr "" #: company/templates/company/manufacturer_part.html:75 #: company/templates/company/supplier_part.html:107 order/models.py:289 #: order/models.py:1406 part/admin.py:305 part/admin.py:411 part/models.py:1018 -#: part/models.py:3791 part/templates/part/category.html:79 +#: part/models.py:3778 part/templates/part/category.html:79 #: part/templates/part/part_base.html:170 #: part/templates/part/part_scheduling.html:12 report/models.py:155 #: report/models.py:517 report/models.py:543 @@ -517,12 +521,12 @@ msgstr "" msgid "An error has been logged by the server." msgstr "" -#: InvenTree/serializers.py:63 part/models.py:4400 +#: InvenTree/serializers.py:63 part/models.py:4387 msgid "Must be a valid number" msgstr "" #: InvenTree/serializers.py:100 company/models.py:183 -#: company/templates/company/company_base.html:112 part/models.py:3127 +#: company/templates/company/company_base.html:112 part/models.py:3114 #: templates/InvenTree/settings/settings_staff_js.html:44 #: templates/currency_data.html:5 msgid "Currency" @@ -536,43 +540,43 @@ msgstr "" msgid "Username" msgstr "" -#: InvenTree/serializers.py:407 templates/InvenTree/settings/user.html:37 +#: InvenTree/serializers.py:408 templates/InvenTree/settings/user.html:37 msgid "First Name" msgstr "" -#: InvenTree/serializers.py:407 +#: InvenTree/serializers.py:408 msgid "First name of the user" msgstr "" -#: InvenTree/serializers.py:410 templates/InvenTree/settings/user.html:41 +#: InvenTree/serializers.py:412 templates/InvenTree/settings/user.html:41 msgid "Last Name" msgstr "" -#: InvenTree/serializers.py:410 +#: InvenTree/serializers.py:412 msgid "Last name of the user" msgstr "" -#: InvenTree/serializers.py:413 +#: InvenTree/serializers.py:416 msgid "Email address of the user" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Staff" msgstr "" -#: InvenTree/serializers.py:438 +#: InvenTree/serializers.py:441 msgid "Does this user have staff permissions" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Superuser" msgstr "" -#: InvenTree/serializers.py:441 +#: InvenTree/serializers.py:445 msgid "Is this user a superuser" msgstr "" -#: InvenTree/serializers.py:444 common/models.py:2703 company/models.py:160 +#: InvenTree/serializers.py:449 common/models.py:2710 company/models.py:160 #: company/models.py:798 machine/models.py:39 part/admin.py:88 #: part/models.py:1201 plugin/models.py:66 #: templates/js/translated/company.js:523 @@ -585,85 +589,85 @@ msgstr "" msgid "Active" msgstr "" -#: InvenTree/serializers.py:444 +#: InvenTree/serializers.py:449 msgid "Is this user account active" msgstr "" -#: InvenTree/serializers.py:462 +#: InvenTree/serializers.py:467 msgid "You do not have permission to change this user role." msgstr "" -#: InvenTree/serializers.py:474 +#: InvenTree/serializers.py:503 msgid "Only superusers can create new users" msgstr "" -#: InvenTree/serializers.py:493 +#: InvenTree/serializers.py:522 msgid "Your account has been created." msgstr "" -#: InvenTree/serializers.py:495 +#: InvenTree/serializers.py:524 msgid "Please use the password reset function to login" msgstr "" -#: InvenTree/serializers.py:502 +#: InvenTree/serializers.py:531 msgid "Welcome to InvenTree" msgstr "" -#: InvenTree/serializers.py:560 +#: InvenTree/serializers.py:589 msgid "Invalid value" msgstr "" -#: InvenTree/serializers.py:580 importer/models.py:64 +#: InvenTree/serializers.py:609 importer/models.py:64 msgid "Data File" msgstr "" -#: InvenTree/serializers.py:581 +#: InvenTree/serializers.py:610 msgid "Select data file for upload" msgstr "" -#: InvenTree/serializers.py:598 +#: InvenTree/serializers.py:627 msgid "Unsupported file type" msgstr "" -#: InvenTree/serializers.py:604 +#: InvenTree/serializers.py:633 msgid "File is too large" msgstr "" -#: InvenTree/serializers.py:625 +#: InvenTree/serializers.py:654 msgid "No columns found in file" msgstr "" -#: InvenTree/serializers.py:628 +#: InvenTree/serializers.py:657 msgid "No data rows found in file" msgstr "" -#: InvenTree/serializers.py:740 +#: InvenTree/serializers.py:769 msgid "No data rows provided" msgstr "" -#: InvenTree/serializers.py:743 +#: InvenTree/serializers.py:772 msgid "No data columns supplied" msgstr "" -#: InvenTree/serializers.py:809 +#: InvenTree/serializers.py:838 #, python-brace-format msgid "Missing required column: '{name}'" msgstr "" -#: InvenTree/serializers.py:818 +#: InvenTree/serializers.py:847 #, python-brace-format msgid "Duplicate column: '{col}'" msgstr "" -#: InvenTree/serializers.py:857 +#: InvenTree/serializers.py:886 msgid "Remote Image" msgstr "" -#: InvenTree/serializers.py:858 +#: InvenTree/serializers.py:887 msgid "URL of remote image file" msgstr "" -#: InvenTree/serializers.py:876 +#: InvenTree/serializers.py:905 msgid "Downloading images from remote URL is not enabled" msgstr "" @@ -759,7 +763,7 @@ msgstr "" msgid "Build must be cancelled before it can be deleted" msgstr "" -#: build/api.py:319 build/serializers.py:1332 part/models.py:4278 +#: build/api.py:319 build/serializers.py:1332 part/models.py:4265 #: templates/js/translated/bom.js:997 templates/js/translated/bom.js:1037 #: templates/js/translated/build.js:2705 #: templates/js/translated/table_filters.js:197 @@ -767,7 +771,7 @@ msgstr "" msgid "Consumable" msgstr "" -#: build/api.py:320 build/serializers.py:1333 part/models.py:4272 +#: build/api.py:320 build/serializers.py:1333 part/models.py:4259 #: part/templates/part/upload_bom.html:58 templates/js/translated/bom.js:1001 #: templates/js/translated/bom.js:1028 templates/js/translated/build.js:2696 #: templates/js/translated/table_filters.js:193 @@ -816,7 +820,7 @@ msgstr "" msgid "Available" msgstr "" -#: build/models.py:87 build/templates/build/build_base.html:9 +#: build/models.py:88 build/templates/build/build_base.html:9 #: build/templates/build/build_base.html:27 #: report/templates/report/inventree_build_order_report.html:105 #: stock/serializers.py:85 templates/email/build_order_completed.html:16 @@ -825,7 +829,7 @@ msgstr "" msgid "Build Order" msgstr "" -#: build/models.py:88 build/templates/build/build_base.html:13 +#: build/models.py:89 build/templates/build/build_base.html:13 #: build/templates/build/index.html:8 build/templates/build/index.html:12 #: order/templates/order/sales_order_detail.html:111 #: order/templates/order/so_sidebar.html:13 @@ -866,7 +870,7 @@ msgstr "" #: build/models.py:243 build/serializers.py:1331 order/models.py:468 #: order/models.py:979 order/models.py:1366 order/models.py:2128 -#: part/admin.py:414 part/models.py:4293 part/templates/part/upload_bom.html:54 +#: part/admin.py:414 part/models.py:4280 part/templates/part/upload_bom.html:54 #: report/templates/report/inventree_bill_of_materials_report.html:139 #: report/templates/report/inventree_purchase_order_report.html:28 #: report/templates/report/inventree_return_order_report.html:26 @@ -892,10 +896,10 @@ msgstr "" #: build/templates/build/build_base.html:105 #: build/templates/build/detail.html:29 company/models.py:1043 order/api.py:761 #: order/models.py:1496 order/models.py:1651 order/models.py:1652 -#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3138 -#: part/models.py:3282 part/models.py:3430 part/models.py:3451 -#: part/models.py:3473 part/models.py:3609 part/models.py:3951 -#: part/models.py:4114 part/models.py:4244 part/models.py:4602 +#: part/api.py:1506 part/api.py:1806 part/models.py:419 part/models.py:3125 +#: part/models.py:3269 part/models.py:3417 part/models.py:3438 +#: part/models.py:3460 part/models.py:3596 part/models.py:3938 +#: part/models.py:4101 part/models.py:4231 part/models.py:4595 #: part/serializers.py:1211 part/serializers.py:1855 #: part/templates/part/part_app_base.html:8 #: part/templates/part/part_pricing.html:12 @@ -1068,7 +1072,7 @@ msgstr "" msgid "External Link" msgstr "" -#: build/models.py:378 common/models.py:3266 part/models.py:1070 +#: build/models.py:378 common/models.py:3273 part/models.py:1070 #: stock/models.py:859 msgid "Link to external URL" msgstr "" @@ -1110,7 +1114,7 @@ msgstr "" msgid "A build order has been completed" msgstr "" -#: build/models.py:968 build/models.py:1056 +#: build/models.py:968 build/models.py:1057 msgid "No build output specified" msgstr "" @@ -1122,37 +1126,37 @@ msgstr "" msgid "Build output does not match Build Order" msgstr "" -#: build/models.py:1060 build/serializers.py:279 build/serializers.py:328 +#: build/models.py:1061 build/serializers.py:279 build/serializers.py:328 #: build/serializers.py:959 order/models.py:565 order/serializers.py:500 #: order/serializers.py:666 part/serializers.py:1588 part/serializers.py:2017 #: stock/models.py:704 stock/models.py:1515 stock/serializers.py:676 msgid "Quantity must be greater than zero" msgstr "" -#: build/models.py:1065 build/serializers.py:284 +#: build/models.py:1066 build/serializers.py:284 msgid "Quantity cannot be greater than the output quantity" msgstr "" -#: build/models.py:1125 build/serializers.py:607 +#: build/models.py:1126 build/serializers.py:607 #, python-brace-format msgid "Build output {serial} has not passed all required tests" msgstr "" -#: build/models.py:1466 +#: build/models.py:1477 msgid "Build Order Line Item" msgstr "" -#: build/models.py:1491 +#: build/models.py:1502 msgid "Build object" msgstr "" -#: build/models.py:1505 build/models.py:1761 build/serializers.py:266 +#: build/models.py:1516 build/models.py:1775 build/serializers.py:266 #: build/serializers.py:313 build/serializers.py:1339 #: build/templates/build/build_base.html:110 -#: build/templates/build/detail.html:34 common/models.py:2575 +#: build/templates/build/detail.html:34 common/models.py:2582 #: order/models.py:1349 order/models.py:2034 order/serializers.py:1464 #: order/templates/order/order_wizard/match_parts.html:30 part/admin.py:413 -#: part/forms.py:48 part/models.py:3296 part/models.py:4266 +#: part/forms.py:48 part/models.py:3283 part/models.py:4253 #: part/templates/part/part_pricing.html:16 #: part/templates/part/upload_bom.html:53 #: report/templates/report/inventree_bill_of_materials_report.html:138 @@ -1194,36 +1198,36 @@ msgstr "" msgid "Quantity" msgstr "" -#: build/models.py:1506 +#: build/models.py:1517 msgid "Required quantity for build order" msgstr "" -#: build/models.py:1586 +#: build/models.py:1597 msgid "Build item must specify a build output, as master part is marked as trackable" msgstr "" -#: build/models.py:1595 +#: build/models.py:1606 #, python-brace-format msgid "Allocated quantity ({q}) must not exceed available stock quantity ({a})" msgstr "" -#: build/models.py:1605 order/models.py:1985 +#: build/models.py:1616 order/models.py:1985 msgid "Stock item is over-allocated" msgstr "" -#: build/models.py:1611 order/models.py:1988 +#: build/models.py:1622 order/models.py:1988 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:1617 +#: build/models.py:1628 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:1676 +#: build/models.py:1687 msgid "Selected stock item does not match BOM line" msgstr "" -#: build/models.py:1748 build/serializers.py:939 order/serializers.py:1301 +#: build/models.py:1762 build/serializers.py:939 order/serializers.py:1301 #: order/serializers.py:1322 stock/models.py:381 stock/serializers.py:94 #: stock/serializers.py:770 stock/serializers.py:1288 stock/serializers.py:1400 #: stock/templates/stock/item_base.html:10 @@ -1241,19 +1245,19 @@ msgstr "" msgid "Stock Item" msgstr "" -#: build/models.py:1749 +#: build/models.py:1763 msgid "Source stock item" msgstr "" -#: build/models.py:1762 +#: build/models.py:1776 msgid "Stock quantity to allocate to build" msgstr "" -#: build/models.py:1770 +#: build/models.py:1784 msgid "Install into" msgstr "" -#: build/models.py:1771 +#: build/models.py:1785 msgid "Destination stock item" msgstr "" @@ -1262,7 +1266,7 @@ msgid "Build Level" msgstr "" #: build/serializers.py:115 build/serializers.py:1234 build/serializers.py:1323 -#: part/admin.py:41 part/admin.py:408 part/models.py:4116 part/stocktake.py:219 +#: part/admin.py:41 part/admin.py:408 part/models.py:4103 part/stocktake.py:219 #: stock/admin.py:157 msgid "Part Name" msgstr "" @@ -1600,12 +1604,12 @@ msgid "Packaging" msgstr "" #: build/serializers.py:1233 part/admin.py:39 part/admin.py:398 -#: part/models.py:4115 part/stocktake.py:218 stock/admin.py:153 +#: part/models.py:4102 part/stocktake.py:218 stock/admin.py:153 msgid "Part ID" msgstr "" #: build/serializers.py:1235 build/serializers.py:1324 part/admin.py:402 -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN" msgstr "" @@ -1667,13 +1671,13 @@ msgstr "" msgid "Inherited" msgstr "" -#: build/serializers.py:1337 part/models.py:4326 +#: build/serializers.py:1337 part/models.py:4313 #: part/templates/part/upload_bom.html:56 templates/js/translated/bom.js:1046 #: templates/js/translated/build.js:2714 msgid "Allow Variants" msgstr "" -#: build/serializers.py:1341 part/models.py:4124 part/models.py:4594 +#: build/serializers.py:1341 part/models.py:4111 part/models.py:4587 #: stock/api.py:793 msgid "BOM Item" msgstr "" @@ -2145,19 +2149,19 @@ msgstr "" msgid "Test Statistics" msgstr "" -#: common/api.py:692 +#: common/api.py:725 msgid "Is Link" msgstr "" -#: common/api.py:700 +#: common/api.py:733 msgid "Is File" msgstr "" -#: common/api.py:743 +#: common/api.py:776 msgid "User does not have permission to delete these attachments" msgstr "" -#: common/api.py:760 +#: common/api.py:793 msgid "User does not have permission to delete this attachment" msgstr "" @@ -2350,7 +2354,7 @@ msgstr "" #: common/models.py:1297 common/models.py:1353 common/models.py:1366 #: common/models.py:1374 common/models.py:1383 common/models.py:1392 #: common/models.py:1629 common/models.py:1651 common/models.py:1752 -#: common/models.py:2134 +#: common/models.py:2141 msgid "days" msgstr "" @@ -2578,7 +2582,7 @@ msgstr "" msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:1485 part/admin.py:108 part/models.py:3959 +#: common/models.py:1485 part/admin.py:108 part/models.py:3946 #: report/models.py:301 report/models.py:368 report/serializers.py:91 #: report/serializers.py:132 stock/serializers.py:233 #: templates/js/translated/table_filters.js:138 @@ -3247,488 +3251,496 @@ msgid "Enable plugins to respond to internal events" msgstr "" #: common/models.py:2099 -msgid "Enable project codes" +msgid "Enable interface integration" msgstr "" #: common/models.py:2100 -msgid "Enable project codes for tracking projects" +msgid "Enable plugins to integrate into the user interface" msgstr "" -#: common/models.py:2105 -msgid "Stocktake Functionality" +#: common/models.py:2106 +msgid "Enable project codes" msgstr "" #: common/models.py:2107 +msgid "Enable project codes for tracking projects" +msgstr "" + +#: common/models.py:2112 +msgid "Stocktake Functionality" +msgstr "" + +#: common/models.py:2114 msgid "Enable stocktake functionality for recording stock levels and calculating stock value" msgstr "" -#: common/models.py:2113 +#: common/models.py:2120 msgid "Exclude External Locations" msgstr "" -#: common/models.py:2115 +#: common/models.py:2122 msgid "Exclude stock items in external locations from stocktake calculations" msgstr "" -#: common/models.py:2121 +#: common/models.py:2128 msgid "Automatic Stocktake Period" msgstr "" -#: common/models.py:2123 +#: common/models.py:2130 msgid "Number of days between automatic stocktake recording (set to zero to disable)" msgstr "" -#: common/models.py:2129 +#: common/models.py:2136 msgid "Report Deletion Interval" msgstr "" -#: common/models.py:2131 +#: common/models.py:2138 msgid "Stocktake reports will be deleted after specified number of days" msgstr "" -#: common/models.py:2138 +#: common/models.py:2145 msgid "Display Users full names" msgstr "" -#: common/models.py:2139 +#: common/models.py:2146 msgid "Display Users full names instead of usernames" msgstr "" -#: common/models.py:2144 +#: common/models.py:2151 msgid "Enable Test Station Data" msgstr "" -#: common/models.py:2145 +#: common/models.py:2152 msgid "Enable test station data collection for test results" msgstr "" -#: common/models.py:2150 +#: common/models.py:2157 msgid "Create Template on Upload" msgstr "" -#: common/models.py:2152 +#: common/models.py:2159 msgid "Create a new test template when uploading test data which does not match an existing template" msgstr "" -#: common/models.py:2165 common/models.py:2545 +#: common/models.py:2172 common/models.py:2552 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:2208 +#: common/models.py:2215 msgid "Hide inactive parts" msgstr "" -#: common/models.py:2210 +#: common/models.py:2217 msgid "Hide inactive parts in results displayed on the homepage" msgstr "" -#: common/models.py:2216 +#: common/models.py:2223 msgid "Show subscribed parts" msgstr "" -#: common/models.py:2217 +#: common/models.py:2224 msgid "Show subscribed parts on the homepage" msgstr "" -#: common/models.py:2222 +#: common/models.py:2229 msgid "Show subscribed categories" msgstr "" -#: common/models.py:2223 +#: common/models.py:2230 msgid "Show subscribed part categories on the homepage" msgstr "" -#: common/models.py:2228 +#: common/models.py:2235 msgid "Show latest parts" msgstr "" -#: common/models.py:2229 +#: common/models.py:2236 msgid "Show latest parts on the homepage" msgstr "" -#: common/models.py:2234 +#: common/models.py:2241 msgid "Show invalid BOMs" msgstr "" -#: common/models.py:2235 +#: common/models.py:2242 msgid "Show BOMs that await validation on the homepage" msgstr "" -#: common/models.py:2240 +#: common/models.py:2247 msgid "Show recent stock changes" msgstr "" -#: common/models.py:2241 +#: common/models.py:2248 msgid "Show recently changed stock items on the homepage" msgstr "" -#: common/models.py:2246 +#: common/models.py:2253 msgid "Show low stock" msgstr "" -#: common/models.py:2247 +#: common/models.py:2254 msgid "Show low stock items on the homepage" msgstr "" -#: common/models.py:2252 +#: common/models.py:2259 msgid "Show depleted stock" msgstr "" -#: common/models.py:2253 +#: common/models.py:2260 msgid "Show depleted stock items on the homepage" msgstr "" -#: common/models.py:2258 +#: common/models.py:2265 msgid "Show needed stock" msgstr "" -#: common/models.py:2259 +#: common/models.py:2266 msgid "Show stock items needed for builds on the homepage" msgstr "" -#: common/models.py:2264 +#: common/models.py:2271 msgid "Show expired stock" msgstr "" -#: common/models.py:2265 +#: common/models.py:2272 msgid "Show expired stock items on the homepage" msgstr "" -#: common/models.py:2270 +#: common/models.py:2277 msgid "Show stale stock" msgstr "" -#: common/models.py:2271 +#: common/models.py:2278 msgid "Show stale stock items on the homepage" msgstr "" -#: common/models.py:2276 +#: common/models.py:2283 msgid "Show pending builds" msgstr "" -#: common/models.py:2277 +#: common/models.py:2284 msgid "Show pending builds on the homepage" msgstr "" -#: common/models.py:2282 +#: common/models.py:2289 msgid "Show overdue builds" msgstr "" -#: common/models.py:2283 +#: common/models.py:2290 msgid "Show overdue builds on the homepage" msgstr "" -#: common/models.py:2288 +#: common/models.py:2295 msgid "Show outstanding POs" msgstr "" -#: common/models.py:2289 +#: common/models.py:2296 msgid "Show outstanding POs on the homepage" msgstr "" -#: common/models.py:2294 +#: common/models.py:2301 msgid "Show overdue POs" msgstr "" -#: common/models.py:2295 +#: common/models.py:2302 msgid "Show overdue POs on the homepage" msgstr "" -#: common/models.py:2300 +#: common/models.py:2307 msgid "Show outstanding SOs" msgstr "" -#: common/models.py:2301 +#: common/models.py:2308 msgid "Show outstanding SOs on the homepage" msgstr "" -#: common/models.py:2306 +#: common/models.py:2313 msgid "Show overdue SOs" msgstr "" -#: common/models.py:2307 +#: common/models.py:2314 msgid "Show overdue SOs on the homepage" msgstr "" -#: common/models.py:2312 +#: common/models.py:2319 msgid "Show pending SO shipments" msgstr "" -#: common/models.py:2313 +#: common/models.py:2320 msgid "Show pending SO shipments on the homepage" msgstr "" -#: common/models.py:2318 +#: common/models.py:2325 msgid "Show News" msgstr "" -#: common/models.py:2319 +#: common/models.py:2326 msgid "Show news on the homepage" msgstr "" -#: common/models.py:2324 +#: common/models.py:2331 msgid "Inline label display" msgstr "" -#: common/models.py:2326 +#: common/models.py:2333 msgid "Display PDF labels in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2332 +#: common/models.py:2339 msgid "Default label printer" msgstr "" -#: common/models.py:2334 +#: common/models.py:2341 msgid "Configure which label printer should be selected by default" msgstr "" -#: common/models.py:2340 +#: common/models.py:2347 msgid "Inline report display" msgstr "" -#: common/models.py:2342 +#: common/models.py:2349 msgid "Display PDF reports in the browser, instead of downloading as a file" msgstr "" -#: common/models.py:2348 +#: common/models.py:2355 msgid "Search Parts" msgstr "" -#: common/models.py:2349 +#: common/models.py:2356 msgid "Display parts in search preview window" msgstr "" -#: common/models.py:2354 +#: common/models.py:2361 msgid "Search Supplier Parts" msgstr "" -#: common/models.py:2355 +#: common/models.py:2362 msgid "Display supplier parts in search preview window" msgstr "" -#: common/models.py:2360 +#: common/models.py:2367 msgid "Search Manufacturer Parts" msgstr "" -#: common/models.py:2361 +#: common/models.py:2368 msgid "Display manufacturer parts in search preview window" msgstr "" -#: common/models.py:2366 +#: common/models.py:2373 msgid "Hide Inactive Parts" msgstr "" -#: common/models.py:2367 +#: common/models.py:2374 msgid "Excluded inactive parts from search preview window" msgstr "" -#: common/models.py:2372 +#: common/models.py:2379 msgid "Search Categories" msgstr "" -#: common/models.py:2373 +#: common/models.py:2380 msgid "Display part categories in search preview window" msgstr "" -#: common/models.py:2378 +#: common/models.py:2385 msgid "Search Stock" msgstr "" -#: common/models.py:2379 +#: common/models.py:2386 msgid "Display stock items in search preview window" msgstr "" -#: common/models.py:2384 +#: common/models.py:2391 msgid "Hide Unavailable Stock Items" msgstr "" -#: common/models.py:2386 +#: common/models.py:2393 msgid "Exclude stock items which are not available from the search preview window" msgstr "" -#: common/models.py:2392 +#: common/models.py:2399 msgid "Search Locations" msgstr "" -#: common/models.py:2393 +#: common/models.py:2400 msgid "Display stock locations in search preview window" msgstr "" -#: common/models.py:2398 +#: common/models.py:2405 msgid "Search Companies" msgstr "" -#: common/models.py:2399 +#: common/models.py:2406 msgid "Display companies in search preview window" msgstr "" -#: common/models.py:2404 +#: common/models.py:2411 msgid "Search Build Orders" msgstr "" -#: common/models.py:2405 +#: common/models.py:2412 msgid "Display build orders in search preview window" msgstr "" -#: common/models.py:2410 +#: common/models.py:2417 msgid "Search Purchase Orders" msgstr "" -#: common/models.py:2411 +#: common/models.py:2418 msgid "Display purchase orders in search preview window" msgstr "" -#: common/models.py:2416 +#: common/models.py:2423 msgid "Exclude Inactive Purchase Orders" msgstr "" -#: common/models.py:2418 +#: common/models.py:2425 msgid "Exclude inactive purchase orders from search preview window" msgstr "" -#: common/models.py:2424 +#: common/models.py:2431 msgid "Search Sales Orders" msgstr "" -#: common/models.py:2425 +#: common/models.py:2432 msgid "Display sales orders in search preview window" msgstr "" -#: common/models.py:2430 +#: common/models.py:2437 msgid "Exclude Inactive Sales Orders" msgstr "" -#: common/models.py:2432 +#: common/models.py:2439 msgid "Exclude inactive sales orders from search preview window" msgstr "" -#: common/models.py:2438 +#: common/models.py:2445 msgid "Search Return Orders" msgstr "" -#: common/models.py:2439 +#: common/models.py:2446 msgid "Display return orders in search preview window" msgstr "" -#: common/models.py:2444 +#: common/models.py:2451 msgid "Exclude Inactive Return Orders" msgstr "" -#: common/models.py:2446 +#: common/models.py:2453 msgid "Exclude inactive return orders from search preview window" msgstr "" -#: common/models.py:2452 +#: common/models.py:2459 msgid "Search Preview Results" msgstr "" -#: common/models.py:2454 +#: common/models.py:2461 msgid "Number of results to show in each section of the search preview window" msgstr "" -#: common/models.py:2460 +#: common/models.py:2467 msgid "Regex Search" msgstr "" -#: common/models.py:2461 +#: common/models.py:2468 msgid "Enable regular expressions in search queries" msgstr "" -#: common/models.py:2466 +#: common/models.py:2473 msgid "Whole Word Search" msgstr "" -#: common/models.py:2467 +#: common/models.py:2474 msgid "Search queries return results for whole word matches" msgstr "" -#: common/models.py:2472 +#: common/models.py:2479 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:2473 +#: common/models.py:2480 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:2478 +#: common/models.py:2485 msgid "Escape Key Closes Forms" msgstr "" -#: common/models.py:2479 +#: common/models.py:2486 msgid "Use the escape key to close modal forms" msgstr "" -#: common/models.py:2484 +#: common/models.py:2491 msgid "Fixed Navbar" msgstr "" -#: common/models.py:2485 +#: common/models.py:2492 msgid "The navbar position is fixed to the top of the screen" msgstr "" -#: common/models.py:2490 +#: common/models.py:2497 msgid "Date Format" msgstr "" -#: common/models.py:2491 +#: common/models.py:2498 msgid "Preferred format for displaying dates" msgstr "" -#: common/models.py:2504 part/templates/part/detail.html:41 +#: common/models.py:2511 part/templates/part/detail.html:41 msgid "Part Scheduling" msgstr "" -#: common/models.py:2505 +#: common/models.py:2512 msgid "Display part scheduling information" msgstr "" -#: common/models.py:2510 part/templates/part/detail.html:62 +#: common/models.py:2517 part/templates/part/detail.html:62 msgid "Part Stocktake" msgstr "" -#: common/models.py:2512 +#: common/models.py:2519 msgid "Display part stocktake information (if stocktake functionality is enabled)" msgstr "" -#: common/models.py:2518 +#: common/models.py:2525 msgid "Table String Length" msgstr "" -#: common/models.py:2520 +#: common/models.py:2527 msgid "Maximum length limit for strings displayed in table views" msgstr "" -#: common/models.py:2526 +#: common/models.py:2533 msgid "Receive error reports" msgstr "" -#: common/models.py:2527 +#: common/models.py:2534 msgid "Receive notifications for system errors" msgstr "" -#: common/models.py:2532 +#: common/models.py:2539 msgid "Last used printing machines" msgstr "" -#: common/models.py:2533 +#: common/models.py:2540 msgid "Save the last used printing machines for a user" msgstr "" -#: common/models.py:2553 common/models.py:2554 common/models.py:2711 -#: common/models.py:2712 common/models.py:2957 common/models.py:2958 -#: common/models.py:3281 common/models.py:3282 importer/models.py:89 -#: part/models.py:3319 part/models.py:3406 part/models.py:3480 -#: part/models.py:3508 plugin/models.py:274 plugin/models.py:275 +#: common/models.py:2560 common/models.py:2561 common/models.py:2718 +#: common/models.py:2719 common/models.py:2964 common/models.py:2965 +#: common/models.py:3288 common/models.py:3289 importer/models.py:89 +#: part/models.py:3306 part/models.py:3393 part/models.py:3467 +#: part/models.py:3495 plugin/models.py:274 plugin/models.py:275 #: report/templates/report/inventree_test_report.html:105 #: templates/js/translated/stock.js:3121 users/models.py:111 msgid "User" msgstr "" -#: common/models.py:2576 +#: common/models.py:2583 msgid "Price break quantity" msgstr "" -#: common/models.py:2583 company/serializers.py:517 order/admin.py:42 +#: common/models.py:2590 company/serializers.py:517 order/admin.py:42 #: order/models.py:1423 order/models.py:2410 #: templates/js/translated/company.js:1823 templates/js/translated/part.js:1892 #: templates/js/translated/pricing.js:621 @@ -3736,96 +3748,96 @@ msgstr "" msgid "Price" msgstr "" -#: common/models.py:2584 +#: common/models.py:2591 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:2688 common/models.py:2873 +#: common/models.py:2695 common/models.py:2880 msgid "Endpoint" msgstr "" -#: common/models.py:2689 +#: common/models.py:2696 msgid "Endpoint at which this webhook is received" msgstr "" -#: common/models.py:2699 +#: common/models.py:2706 msgid "Name for this webhook" msgstr "" -#: common/models.py:2703 +#: common/models.py:2710 msgid "Is this webhook active" msgstr "" -#: common/models.py:2719 users/models.py:159 +#: common/models.py:2726 users/models.py:159 msgid "Token" msgstr "" -#: common/models.py:2720 +#: common/models.py:2727 msgid "Token for access" msgstr "" -#: common/models.py:2728 +#: common/models.py:2735 msgid "Secret" msgstr "" -#: common/models.py:2729 +#: common/models.py:2736 msgid "Shared secret for HMAC" msgstr "" -#: common/models.py:2837 +#: common/models.py:2844 msgid "Message ID" msgstr "" -#: common/models.py:2838 +#: common/models.py:2845 msgid "Unique identifier for this message" msgstr "" -#: common/models.py:2846 +#: common/models.py:2853 msgid "Host" msgstr "" -#: common/models.py:2847 +#: common/models.py:2854 msgid "Host from which this message was received" msgstr "" -#: common/models.py:2855 +#: common/models.py:2862 msgid "Header" msgstr "" -#: common/models.py:2856 +#: common/models.py:2863 msgid "Header of this message" msgstr "" -#: common/models.py:2863 +#: common/models.py:2870 msgid "Body" msgstr "" -#: common/models.py:2864 +#: common/models.py:2871 msgid "Body of this message" msgstr "" -#: common/models.py:2874 +#: common/models.py:2881 msgid "Endpoint on which this message was received" msgstr "" -#: common/models.py:2879 +#: common/models.py:2886 msgid "Worked on" msgstr "" -#: common/models.py:2880 +#: common/models.py:2887 msgid "Was the work on this message finished?" msgstr "" -#: common/models.py:3006 +#: common/models.py:3013 msgid "Id" msgstr "" -#: common/models.py:3008 templates/js/translated/company.js:965 +#: common/models.py:3015 templates/js/translated/company.js:965 #: templates/js/translated/news.js:44 msgid "Title" msgstr "" -#: common/models.py:3010 common/models.py:3265 company/models.py:146 +#: common/models.py:3017 common/models.py:3272 company/models.py:146 #: company/models.py:443 company/models.py:509 company/models.py:815 #: order/models.py:303 order/models.py:1378 order/models.py:1810 #: part/admin.py:55 part/models.py:1069 @@ -3842,28 +3854,28 @@ msgstr "" msgid "Link" msgstr "" -#: common/models.py:3012 templates/js/translated/news.js:60 +#: common/models.py:3019 templates/js/translated/news.js:60 msgid "Published" msgstr "" -#: common/models.py:3014 templates/InvenTree/settings/plugin_settings.html:32 +#: common/models.py:3021 templates/InvenTree/settings/plugin_settings.html:32 #: templates/js/translated/news.js:56 templates/js/translated/plugin.js:103 msgid "Author" msgstr "" -#: common/models.py:3016 templates/js/translated/news.js:52 +#: common/models.py:3023 templates/js/translated/news.js:52 msgid "Summary" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Read" msgstr "" -#: common/models.py:3019 +#: common/models.py:3026 msgid "Was this news item read?" msgstr "" -#: common/models.py:3036 company/models.py:156 part/models.py:1079 +#: common/models.py:3043 company/models.py:156 part/models.py:1079 #: report/templates/report/inventree_bill_of_materials_report.html:126 #: report/templates/report/inventree_bill_of_materials_report.html:148 #: report/templates/report/inventree_return_order_report.html:35 @@ -3873,186 +3885,186 @@ msgstr "" msgid "Image" msgstr "" -#: common/models.py:3036 +#: common/models.py:3043 msgid "Image file" msgstr "" -#: common/models.py:3048 common/models.py:3249 +#: common/models.py:3055 common/models.py:3256 msgid "Target model type for this image" msgstr "" -#: common/models.py:3052 +#: common/models.py:3059 msgid "Target model ID for this image" msgstr "" -#: common/models.py:3074 +#: common/models.py:3081 msgid "Custom Unit" msgstr "" -#: common/models.py:3092 +#: common/models.py:3099 msgid "Unit symbol must be unique" msgstr "" -#: common/models.py:3107 +#: common/models.py:3114 msgid "Unit name must be a valid identifier" msgstr "" -#: common/models.py:3126 +#: common/models.py:3133 msgid "Unit name" msgstr "" -#: common/models.py:3133 templates/InvenTree/settings/settings_staff_js.html:75 +#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:75 msgid "Symbol" msgstr "" -#: common/models.py:3134 +#: common/models.py:3141 msgid "Optional unit symbol" msgstr "" -#: common/models.py:3140 templates/InvenTree/settings/settings_staff_js.html:71 +#: common/models.py:3147 templates/InvenTree/settings/settings_staff_js.html:71 msgid "Definition" msgstr "" -#: common/models.py:3141 +#: common/models.py:3148 msgid "Unit definition" msgstr "" -#: common/models.py:3199 common/models.py:3256 stock/models.py:2549 +#: common/models.py:3206 common/models.py:3263 stock/models.py:2547 #: stock/serializers.py:244 templates/js/translated/attachment.js:119 #: templates/js/translated/attachment.js:345 msgid "Attachment" msgstr "" -#: common/models.py:3211 +#: common/models.py:3218 msgid "Missing file" msgstr "" -#: common/models.py:3212 +#: common/models.py:3219 msgid "Missing external link" msgstr "" -#: common/models.py:3257 +#: common/models.py:3264 msgid "Select file to attach" msgstr "" -#: common/models.py:3272 templates/js/translated/attachment.js:120 +#: common/models.py:3279 templates/js/translated/attachment.js:120 #: templates/js/translated/attachment.js:360 msgid "Comment" msgstr "" -#: common/models.py:3273 +#: common/models.py:3280 msgid "Attachment comment" msgstr "" -#: common/models.py:3289 +#: common/models.py:3296 msgid "Upload date" msgstr "" -#: common/models.py:3290 +#: common/models.py:3297 msgid "Date the file was uploaded" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size" msgstr "" -#: common/models.py:3294 +#: common/models.py:3301 msgid "File size in bytes" msgstr "" -#: common/models.py:3332 common/serializers.py:588 +#: common/models.py:3339 common/serializers.py:604 msgid "Invalid model type specified for attachment" msgstr "" -#: common/models.py:3341 plugin/models.py:43 users/models.py:100 +#: common/models.py:3348 plugin/models.py:43 users/models.py:100 msgid "Key" msgstr "" -#: common/models.py:3342 +#: common/models.py:3349 msgid "Value that will be saved in the models database" msgstr "" -#: common/models.py:3345 +#: common/models.py:3352 msgid "Name of the state" msgstr "" -#: common/models.py:3349 +#: common/models.py:3356 msgid "Label" msgstr "" -#: common/models.py:3350 +#: common/models.py:3357 msgid "Label that will be displayed in the frontend" msgstr "" -#: common/models.py:3356 +#: common/models.py:3363 msgid "Color" msgstr "" -#: common/models.py:3357 +#: common/models.py:3364 msgid "Color that will be displayed in the frontend" msgstr "" -#: common/models.py:3360 +#: common/models.py:3367 msgid "Logical Key" msgstr "" -#: common/models.py:3362 +#: common/models.py:3369 msgid "State logical key that is equal to this custom state in business logic" msgstr "" -#: common/models.py:3370 +#: common/models.py:3377 msgid "Model" msgstr "" -#: common/models.py:3371 +#: common/models.py:3378 msgid "Model this state is associated with" msgstr "" -#: common/models.py:3375 +#: common/models.py:3382 msgid "Reference Status Set" msgstr "" -#: common/models.py:3376 +#: common/models.py:3383 msgid "Status set that is extended with this custom state" msgstr "" -#: common/models.py:3382 +#: common/models.py:3389 msgid "Custom State" msgstr "" -#: common/models.py:3383 +#: common/models.py:3390 msgid "Custom States" msgstr "" -#: common/models.py:3398 +#: common/models.py:3405 msgid "Model must be selected" msgstr "" -#: common/models.py:3401 +#: common/models.py:3408 msgid "Key must be selected" msgstr "" -#: common/models.py:3404 +#: common/models.py:3411 msgid "Logical key must be selected" msgstr "" -#: common/models.py:3408 +#: common/models.py:3415 msgid "Key must be different from logical key" msgstr "" -#: common/models.py:3412 +#: common/models.py:3419 msgid "Reference status must be selected" msgstr "" -#: common/models.py:3424 +#: common/models.py:3431 msgid "Reference status set not found" msgstr "" -#: common/models.py:3430 +#: common/models.py:3437 msgid "Key must be different from the logical keys of the reference status" msgstr "" -#: common/models.py:3436 +#: common/models.py:3443 msgid "Logical key must be in the logical keys of the reference status" msgstr "" @@ -4090,75 +4102,75 @@ msgstr "" msgid "Error raised by plugin" msgstr "" -#: common/serializers.py:402 +#: common/serializers.py:418 msgid "Is Running" msgstr "" -#: common/serializers.py:408 +#: common/serializers.py:424 msgid "Pending Tasks" msgstr "" -#: common/serializers.py:414 +#: common/serializers.py:430 msgid "Scheduled Tasks" msgstr "" -#: common/serializers.py:420 +#: common/serializers.py:436 msgid "Failed Tasks" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Task ID" msgstr "" -#: common/serializers.py:435 +#: common/serializers.py:451 msgid "Unique task ID" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock" msgstr "" -#: common/serializers.py:437 +#: common/serializers.py:453 msgid "Lock time" msgstr "" -#: common/serializers.py:439 +#: common/serializers.py:455 msgid "Task name" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function" msgstr "" -#: common/serializers.py:441 +#: common/serializers.py:457 msgid "Function name" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Arguments" msgstr "" -#: common/serializers.py:443 +#: common/serializers.py:459 msgid "Task arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Keyword Arguments" msgstr "" -#: common/serializers.py:446 +#: common/serializers.py:462 msgid "Task keyword arguments" msgstr "" -#: common/serializers.py:556 +#: common/serializers.py:572 msgid "Filename" msgstr "" -#: common/serializers.py:563 report/api.py:100 report/serializers.py:54 +#: common/serializers.py:579 report/api.py:100 report/serializers.py:54 msgid "Model Type" msgstr "" -#: common/serializers.py:591 +#: common/serializers.py:607 msgid "User does not have permission to create or edit attachments for this model" msgstr "" @@ -4494,7 +4506,7 @@ msgid "Parameter name" msgstr "" #: company/models.py:597 report/templates/report/inventree_test_report.html:104 -#: stock/models.py:2541 templates/js/translated/company.js:1166 +#: stock/models.py:2539 templates/js/translated/company.js:1166 #: templates/js/translated/company.js:1419 templates/js/translated/part.js:1499 #: templates/js/translated/stock.js:1607 msgid "Value" @@ -4505,7 +4517,7 @@ msgid "Parameter value" msgstr "" #: company/models.py:605 company/templates/company/supplier_part.html:168 -#: part/admin.py:57 part/models.py:1159 part/models.py:3783 +#: part/admin.py:57 part/models.py:1159 part/models.py:3770 #: part/templates/part/part_base.html:300 #: templates/js/translated/company.js:1425 templates/js/translated/part.js:1518 #: templates/js/translated/part.js:1622 templates/js/translated/part.js:2376 @@ -4580,7 +4592,7 @@ msgid "Supplier part description" msgstr "" #: company/models.py:832 company/templates/company/supplier_part.html:187 -#: order/serializers.py:699 part/admin.py:415 part/models.py:4301 +#: order/serializers.py:699 part/admin.py:415 part/models.py:4288 #: part/templates/part/upload_bom.html:59 #: report/templates/report/inventree_bill_of_materials_report.html:140 #: report/templates/report/inventree_purchase_order_report.html:32 @@ -4592,11 +4604,11 @@ msgstr "" msgid "Note" msgstr "" -#: company/models.py:841 part/models.py:2129 +#: company/models.py:841 part/models.py:2128 msgid "base cost" msgstr "" -#: company/models.py:842 part/models.py:2130 +#: company/models.py:842 part/models.py:2129 msgid "Minimum charge (e.g. stocking fee)" msgstr "" @@ -4618,7 +4630,7 @@ msgstr "" msgid "Total quantity supplied in a single pack. Leave empty for single items." msgstr "" -#: company/models.py:876 part/models.py:2136 +#: company/models.py:876 part/models.py:2135 msgid "multiple" msgstr "" @@ -5204,7 +5216,7 @@ msgstr "" msgid "Original row data" msgstr "" -#: importer/models.py:504 part/models.py:3965 +#: importer/models.py:504 part/models.py:3952 msgid "Data" msgstr "" @@ -6557,12 +6569,12 @@ msgstr "" msgid "Building" msgstr "" -#: part/admin.py:155 part/models.py:3214 part/models.py:3228 +#: part/admin.py:155 part/models.py:3201 part/models.py:3215 #: templates/js/translated/part.js:976 msgid "Minimum Cost" msgstr "" -#: part/admin.py:158 part/models.py:3221 part/models.py:3235 +#: part/admin.py:158 part/models.py:3208 part/models.py:3222 #: templates/js/translated/part.js:986 msgid "Maximum Cost" msgstr "" @@ -6708,7 +6720,7 @@ msgstr "" msgid "BOM Valid" msgstr "" -#: part/api.py:1520 part/models.py:1036 part/models.py:3501 part/models.py:4060 +#: part/api.py:1520 part/models.py:1036 part/models.py:3488 part/models.py:4047 #: part/serializers.py:441 part/serializers.py:1221 #: part/templates/part/part_base.html:267 stock/api.py:780 #: templates/InvenTree/settings/settings_staff_js.html:300 @@ -6744,7 +6756,7 @@ msgstr "" msgid "Input quantity for price calculation" msgstr "" -#: part/models.py:89 part/models.py:4061 part/templates/part/category.html:16 +#: part/models.py:89 part/models.py:4048 part/templates/part/category.html:16 #: part/templates/part/part_app_base.html:10 msgid "Part Category" msgstr "" @@ -6867,7 +6879,7 @@ msgstr "" msgid "Parts cannot be assigned to structural part categories!" msgstr "" -#: part/models.py:995 part/models.py:4116 +#: part/models.py:995 part/models.py:4103 msgid "Part name" msgstr "" @@ -7006,159 +7018,159 @@ msgstr "" msgid "Last Stocktake" msgstr "" -#: part/models.py:2137 +#: part/models.py:2136 msgid "Sell multiple" msgstr "" -#: part/models.py:3128 +#: part/models.py:3115 msgid "Currency used to cache pricing calculations" msgstr "" -#: part/models.py:3144 +#: part/models.py:3131 msgid "Minimum BOM Cost" msgstr "" -#: part/models.py:3145 +#: part/models.py:3132 msgid "Minimum cost of component parts" msgstr "" -#: part/models.py:3151 +#: part/models.py:3138 msgid "Maximum BOM Cost" msgstr "" -#: part/models.py:3152 +#: part/models.py:3139 msgid "Maximum cost of component parts" msgstr "" -#: part/models.py:3158 +#: part/models.py:3145 msgid "Minimum Purchase Cost" msgstr "" -#: part/models.py:3159 +#: part/models.py:3146 msgid "Minimum historical purchase cost" msgstr "" -#: part/models.py:3165 +#: part/models.py:3152 msgid "Maximum Purchase Cost" msgstr "" -#: part/models.py:3166 +#: part/models.py:3153 msgid "Maximum historical purchase cost" msgstr "" -#: part/models.py:3172 +#: part/models.py:3159 msgid "Minimum Internal Price" msgstr "" -#: part/models.py:3173 +#: part/models.py:3160 msgid "Minimum cost based on internal price breaks" msgstr "" -#: part/models.py:3179 +#: part/models.py:3166 msgid "Maximum Internal Price" msgstr "" -#: part/models.py:3180 +#: part/models.py:3167 msgid "Maximum cost based on internal price breaks" msgstr "" -#: part/models.py:3186 +#: part/models.py:3173 msgid "Minimum Supplier Price" msgstr "" -#: part/models.py:3187 +#: part/models.py:3174 msgid "Minimum price of part from external suppliers" msgstr "" -#: part/models.py:3193 +#: part/models.py:3180 msgid "Maximum Supplier Price" msgstr "" -#: part/models.py:3194 +#: part/models.py:3181 msgid "Maximum price of part from external suppliers" msgstr "" -#: part/models.py:3200 +#: part/models.py:3187 msgid "Minimum Variant Cost" msgstr "" -#: part/models.py:3201 +#: part/models.py:3188 msgid "Calculated minimum cost of variant parts" msgstr "" -#: part/models.py:3207 +#: part/models.py:3194 msgid "Maximum Variant Cost" msgstr "" -#: part/models.py:3208 +#: part/models.py:3195 msgid "Calculated maximum cost of variant parts" msgstr "" -#: part/models.py:3215 +#: part/models.py:3202 msgid "Override minimum cost" msgstr "" -#: part/models.py:3222 +#: part/models.py:3209 msgid "Override maximum cost" msgstr "" -#: part/models.py:3229 +#: part/models.py:3216 msgid "Calculated overall minimum cost" msgstr "" -#: part/models.py:3236 +#: part/models.py:3223 msgid "Calculated overall maximum cost" msgstr "" -#: part/models.py:3242 +#: part/models.py:3229 msgid "Minimum Sale Price" msgstr "" -#: part/models.py:3243 +#: part/models.py:3230 msgid "Minimum sale price based on price breaks" msgstr "" -#: part/models.py:3249 +#: part/models.py:3236 msgid "Maximum Sale Price" msgstr "" -#: part/models.py:3250 +#: part/models.py:3237 msgid "Maximum sale price based on price breaks" msgstr "" -#: part/models.py:3256 +#: part/models.py:3243 msgid "Minimum Sale Cost" msgstr "" -#: part/models.py:3257 +#: part/models.py:3244 msgid "Minimum historical sale price" msgstr "" -#: part/models.py:3263 +#: part/models.py:3250 msgid "Maximum Sale Cost" msgstr "" -#: part/models.py:3264 +#: part/models.py:3251 msgid "Maximum historical sale price" msgstr "" -#: part/models.py:3283 +#: part/models.py:3270 msgid "Part for stocktake" msgstr "" -#: part/models.py:3288 +#: part/models.py:3275 msgid "Item Count" msgstr "" -#: part/models.py:3289 +#: part/models.py:3276 msgid "Number of individual stock entries at time of stocktake" msgstr "" -#: part/models.py:3297 +#: part/models.py:3284 msgid "Total available stock at time of stocktake" msgstr "" -#: part/models.py:3301 part/models.py:3384 +#: part/models.py:3288 part/models.py:3371 #: part/templates/part/part_scheduling.html:13 #: report/templates/report/inventree_test_report.html:106 #: templates/InvenTree/settings/plugin_settings.html:37 @@ -7170,363 +7182,363 @@ msgstr "" msgid "Date" msgstr "" -#: part/models.py:3302 +#: part/models.py:3289 msgid "Date stocktake was performed" msgstr "" -#: part/models.py:3310 +#: part/models.py:3297 msgid "Additional notes" msgstr "" -#: part/models.py:3320 +#: part/models.py:3307 msgid "User who performed this stocktake" msgstr "" -#: part/models.py:3326 +#: part/models.py:3313 msgid "Minimum Stock Cost" msgstr "" -#: part/models.py:3327 +#: part/models.py:3314 msgid "Estimated minimum cost of stock on hand" msgstr "" -#: part/models.py:3333 +#: part/models.py:3320 msgid "Maximum Stock Cost" msgstr "" -#: part/models.py:3334 +#: part/models.py:3321 msgid "Estimated maximum cost of stock on hand" msgstr "" -#: part/models.py:3390 templates/InvenTree/settings/settings_staff_js.html:532 +#: part/models.py:3377 templates/InvenTree/settings/settings_staff_js.html:532 msgid "Report" msgstr "" -#: part/models.py:3391 +#: part/models.py:3378 msgid "Stocktake report file (generated internally)" msgstr "" -#: part/models.py:3396 templates/InvenTree/settings/settings_staff_js.html:539 +#: part/models.py:3383 templates/InvenTree/settings/settings_staff_js.html:539 msgid "Part Count" msgstr "" -#: part/models.py:3397 +#: part/models.py:3384 msgid "Number of parts covered by stocktake" msgstr "" -#: part/models.py:3407 +#: part/models.py:3394 msgid "User who requested this stocktake report" msgstr "" -#: part/models.py:3417 +#: part/models.py:3404 msgid "Part Sale Price Break" msgstr "" -#: part/models.py:3529 +#: part/models.py:3516 msgid "Part Test Template" msgstr "" -#: part/models.py:3555 +#: part/models.py:3542 msgid "Invalid template name - must include at least one alphanumeric character" msgstr "" -#: part/models.py:3576 part/models.py:3745 +#: part/models.py:3563 part/models.py:3732 msgid "Choices must be unique" msgstr "" -#: part/models.py:3587 +#: part/models.py:3574 msgid "Test templates can only be created for testable parts" msgstr "" -#: part/models.py:3598 +#: part/models.py:3585 msgid "Test template with the same key already exists for part" msgstr "" -#: part/models.py:3615 templates/js/translated/part.js:2898 +#: part/models.py:3602 templates/js/translated/part.js:2898 msgid "Test Name" msgstr "" -#: part/models.py:3616 +#: part/models.py:3603 msgid "Enter a name for the test" msgstr "" -#: part/models.py:3622 +#: part/models.py:3609 msgid "Test Key" msgstr "" -#: part/models.py:3623 +#: part/models.py:3610 msgid "Simplified key for the test" msgstr "" -#: part/models.py:3630 +#: part/models.py:3617 msgid "Test Description" msgstr "" -#: part/models.py:3631 +#: part/models.py:3618 msgid "Enter description for this test" msgstr "" -#: part/models.py:3635 report/models.py:216 +#: part/models.py:3622 report/models.py:216 #: templates/js/translated/part.js:2919 #: templates/js/translated/table_filters.js:502 msgid "Enabled" msgstr "" -#: part/models.py:3635 +#: part/models.py:3622 msgid "Is this test enabled?" msgstr "" -#: part/models.py:3640 templates/js/translated/part.js:2927 +#: part/models.py:3627 templates/js/translated/part.js:2927 #: templates/js/translated/table_filters.js:498 msgid "Required" msgstr "" -#: part/models.py:3641 +#: part/models.py:3628 msgid "Is this test required to pass?" msgstr "" -#: part/models.py:3646 templates/js/translated/part.js:2935 +#: part/models.py:3633 templates/js/translated/part.js:2935 msgid "Requires Value" msgstr "" -#: part/models.py:3647 +#: part/models.py:3634 msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:3652 templates/js/translated/part.js:2942 +#: part/models.py:3639 templates/js/translated/part.js:2942 msgid "Requires Attachment" msgstr "" -#: part/models.py:3654 +#: part/models.py:3641 msgid "Does this test require a file attachment when adding a test result?" msgstr "" -#: part/models.py:3660 part/models.py:3804 templates/js/translated/part.js:1643 +#: part/models.py:3647 part/models.py:3791 templates/js/translated/part.js:1643 msgid "Choices" msgstr "" -#: part/models.py:3661 +#: part/models.py:3648 msgid "Valid choices for this test (comma-separated)" msgstr "" -#: part/models.py:3693 +#: part/models.py:3680 msgid "Part Parameter Template" msgstr "" -#: part/models.py:3720 +#: part/models.py:3707 msgid "Checkbox parameters cannot have units" msgstr "" -#: part/models.py:3725 +#: part/models.py:3712 msgid "Checkbox parameters cannot have choices" msgstr "" -#: part/models.py:3762 +#: part/models.py:3749 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:3777 +#: part/models.py:3764 msgid "Parameter Name" msgstr "" -#: part/models.py:3784 +#: part/models.py:3771 msgid "Physical units for this parameter" msgstr "" -#: part/models.py:3792 +#: part/models.py:3779 msgid "Parameter description" msgstr "" -#: part/models.py:3798 templates/js/translated/part.js:1634 +#: part/models.py:3785 templates/js/translated/part.js:1634 #: templates/js/translated/table_filters.js:837 msgid "Checkbox" msgstr "" -#: part/models.py:3799 +#: part/models.py:3786 msgid "Is this parameter a checkbox?" msgstr "" -#: part/models.py:3805 +#: part/models.py:3792 msgid "Valid choices for this parameter (comma-separated)" msgstr "" -#: part/models.py:3839 +#: part/models.py:3826 msgid "Part Parameter" msgstr "" -#: part/models.py:3865 +#: part/models.py:3852 msgid "Parameter cannot be modified - part is locked" msgstr "" -#: part/models.py:3903 +#: part/models.py:3890 msgid "Invalid choice for parameter value" msgstr "" -#: part/models.py:3952 +#: part/models.py:3939 msgid "Parent Part" msgstr "" -#: part/models.py:3960 part/models.py:4068 part/models.py:4069 +#: part/models.py:3947 part/models.py:4055 part/models.py:4056 #: templates/InvenTree/settings/settings_staff_js.html:295 msgid "Parameter Template" msgstr "" -#: part/models.py:3966 +#: part/models.py:3953 msgid "Parameter Value" msgstr "" -#: part/models.py:4016 +#: part/models.py:4003 msgid "Part Category Parameter Template" msgstr "" -#: part/models.py:4075 templates/InvenTree/settings/settings_staff_js.html:304 +#: part/models.py:4062 templates/InvenTree/settings/settings_staff_js.html:304 msgid "Default Value" msgstr "" -#: part/models.py:4076 +#: part/models.py:4063 msgid "Default Parameter Value" msgstr "" -#: part/models.py:4114 +#: part/models.py:4101 msgid "Part ID or part name" msgstr "" -#: part/models.py:4115 +#: part/models.py:4102 msgid "Unique part ID value" msgstr "" -#: part/models.py:4117 +#: part/models.py:4104 msgid "Part IPN value" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "Level" msgstr "" -#: part/models.py:4118 +#: part/models.py:4105 msgid "BOM level" msgstr "" -#: part/models.py:4228 +#: part/models.py:4215 msgid "BOM item cannot be modified - assembly is locked" msgstr "" -#: part/models.py:4235 +#: part/models.py:4222 msgid "BOM item cannot be modified - variant assembly is locked" msgstr "" -#: part/models.py:4245 +#: part/models.py:4232 msgid "Select parent part" msgstr "" -#: part/models.py:4255 +#: part/models.py:4242 msgid "Sub part" msgstr "" -#: part/models.py:4256 +#: part/models.py:4243 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:4267 +#: part/models.py:4254 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:4273 +#: part/models.py:4260 msgid "This BOM item is optional" msgstr "" -#: part/models.py:4279 +#: part/models.py:4266 msgid "This BOM item is consumable (it is not tracked in build orders)" msgstr "" -#: part/models.py:4286 part/templates/part/upload_bom.html:55 +#: part/models.py:4273 part/templates/part/upload_bom.html:55 msgid "Overage" msgstr "" -#: part/models.py:4287 +#: part/models.py:4274 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:4294 +#: part/models.py:4281 msgid "BOM item reference" msgstr "" -#: part/models.py:4302 +#: part/models.py:4289 msgid "BOM item notes" msgstr "" -#: part/models.py:4308 +#: part/models.py:4295 msgid "Checksum" msgstr "" -#: part/models.py:4309 +#: part/models.py:4296 msgid "BOM line checksum" msgstr "" -#: part/models.py:4314 templates/js/translated/table_filters.js:181 +#: part/models.py:4301 templates/js/translated/table_filters.js:181 msgid "Validated" msgstr "" -#: part/models.py:4315 +#: part/models.py:4302 msgid "This BOM item has been validated" msgstr "" -#: part/models.py:4320 part/templates/part/upload_bom.html:57 +#: part/models.py:4307 part/templates/part/upload_bom.html:57 #: templates/js/translated/bom.js:1054 #: templates/js/translated/table_filters.js:185 #: templates/js/translated/table_filters.js:218 msgid "Gets inherited" msgstr "" -#: part/models.py:4321 +#: part/models.py:4308 msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:4327 +#: part/models.py:4314 msgid "Stock items for variant parts can be used for this BOM item" msgstr "" -#: part/models.py:4412 stock/models.py:689 +#: part/models.py:4399 stock/models.py:689 msgid "Quantity must be integer value for trackable parts" msgstr "" -#: part/models.py:4422 part/models.py:4424 +#: part/models.py:4409 part/models.py:4411 msgid "Sub part must be specified" msgstr "" -#: part/models.py:4561 +#: part/models.py:4554 msgid "BOM Item Substitute" msgstr "" -#: part/models.py:4582 +#: part/models.py:4575 msgid "Substitute part cannot be the same as the master part" msgstr "" -#: part/models.py:4595 +#: part/models.py:4588 msgid "Parent BOM item" msgstr "" -#: part/models.py:4603 +#: part/models.py:4596 msgid "Substitute part" msgstr "" -#: part/models.py:4619 +#: part/models.py:4612 msgid "Part 1" msgstr "" -#: part/models.py:4627 +#: part/models.py:4620 msgid "Part 2" msgstr "" -#: part/models.py:4628 +#: part/models.py:4621 msgid "Select Related Part" msgstr "" -#: part/models.py:4647 +#: part/models.py:4640 msgid "Part relationship cannot be created between a part and itself" msgstr "" -#: part/models.py:4652 +#: part/models.py:4645 msgid "Duplicate relationship already exists" msgstr "" @@ -8593,7 +8605,7 @@ msgstr "" msgid "Part Pricing" msgstr "" -#: plugin/api.py:172 +#: plugin/api.py:174 msgid "Plugin cannot be deleted as it is currently active" msgstr "" @@ -9001,44 +9013,44 @@ msgstr "" msgid "The Supplier which acts as 'TME'" msgstr "" -#: plugin/installer.py:194 plugin/installer.py:274 +#: plugin/installer.py:199 plugin/installer.py:282 msgid "Only staff users can administer plugins" msgstr "" -#: plugin/installer.py:197 +#: plugin/installer.py:202 msgid "Plugin installation is disabled" msgstr "" -#: plugin/installer.py:241 +#: plugin/installer.py:246 msgid "Installed plugin successfully" msgstr "" -#: plugin/installer.py:246 +#: plugin/installer.py:251 #, python-brace-format msgid "Installed plugin into {path}" msgstr "" -#: plugin/installer.py:265 +#: plugin/installer.py:273 msgid "Plugin was not found in registry" msgstr "" -#: plugin/installer.py:268 +#: plugin/installer.py:276 msgid "Plugin is not a packaged plugin" msgstr "" -#: plugin/installer.py:271 +#: plugin/installer.py:279 msgid "Plugin package name not found" msgstr "" -#: plugin/installer.py:291 +#: plugin/installer.py:299 msgid "Plugin uninstalling is disabled" msgstr "" -#: plugin/installer.py:295 +#: plugin/installer.py:303 msgid "Plugin cannot be uninstalled as it is currently active" msgstr "" -#: plugin/installer.py:308 +#: plugin/installer.py:316 msgid "Uninstalled plugin successfully" msgstr "" @@ -9156,6 +9168,38 @@ msgstr "" msgid "InvenTree Contributors" msgstr "" +#: plugin/samples/integration/user_interface_sample.py:22 +msgid "Enable Part Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:23 +msgid "Enable custom panels for Part views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:28 +msgid "Enable Purchase Order Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:29 +msgid "Enable custom panels for Purchase Order views" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:34 +msgid "Enable Broken Panels" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:35 +msgid "Enable broken panels for testing" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:40 +msgid "Enable Dynamic Panel" +msgstr "" + +#: plugin/samples/integration/user_interface_sample.py:41 +msgid "Enable dynamic panels for testing" +msgstr "" + #: plugin/serializers.py:81 msgid "Source URL" msgstr "" @@ -9234,6 +9278,30 @@ msgstr "" msgid "Delete the plugin configuration from the database" msgstr "" +#: plugin/serializers.py:324 +msgid "Plugin Key" +msgstr "" + +#: plugin/serializers.py:328 +msgid "Panel Name" +msgstr "" + +#: plugin/serializers.py:332 +msgid "Panel Title" +msgstr "" + +#: plugin/serializers.py:337 +msgid "Panel Icon" +msgstr "" + +#: plugin/serializers.py:341 +msgid "Panel Content (HTML)" +msgstr "" + +#: plugin/serializers.py:345 +msgid "Panel Source (javascript)" +msgstr "" + #: report/api.py:88 msgid "No valid objects provided to template" msgstr "" @@ -9518,7 +9586,7 @@ msgstr "" msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report.html:103 stock/models.py:2535 +#: report/templates/report/inventree_test_report.html:103 stock/models.py:2533 msgid "Result" msgstr "" @@ -9892,7 +9960,7 @@ msgstr "" msgid "Serial numbers already exist" msgstr "" -#: stock/models.py:1636 stock/models.py:2438 +#: stock/models.py:1636 stock/models.py:2436 msgid "Test template does not exist" msgstr "" @@ -9940,67 +10008,67 @@ msgstr "" msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:2337 +#: stock/models.py:2335 msgid "Stock Item Tracking" msgstr "" -#: stock/models.py:2370 +#: stock/models.py:2368 msgid "Entry notes" msgstr "" -#: stock/models.py:2410 +#: stock/models.py:2408 msgid "Stock Item Test Result" msgstr "" -#: stock/models.py:2441 +#: stock/models.py:2439 msgid "Value must be provided for this test" msgstr "" -#: stock/models.py:2445 +#: stock/models.py:2443 msgid "Attachment must be uploaded for this test" msgstr "" -#: stock/models.py:2450 +#: stock/models.py:2448 msgid "Invalid value for this test" msgstr "" -#: stock/models.py:2535 +#: stock/models.py:2533 msgid "Test result" msgstr "" -#: stock/models.py:2542 +#: stock/models.py:2540 msgid "Test output value" msgstr "" -#: stock/models.py:2550 stock/serializers.py:245 +#: stock/models.py:2548 stock/serializers.py:245 msgid "Test result attachment" msgstr "" -#: stock/models.py:2554 +#: stock/models.py:2552 msgid "Test notes" msgstr "" -#: stock/models.py:2562 templates/js/translated/stock.js:1633 +#: stock/models.py:2560 templates/js/translated/stock.js:1633 msgid "Test station" msgstr "" -#: stock/models.py:2563 +#: stock/models.py:2561 msgid "The identifier of the test station where the test was performed" msgstr "" -#: stock/models.py:2569 +#: stock/models.py:2567 msgid "Started" msgstr "" -#: stock/models.py:2570 +#: stock/models.py:2568 msgid "The timestamp of the test start" msgstr "" -#: stock/models.py:2576 +#: stock/models.py:2574 msgid "Finished" msgstr "" -#: stock/models.py:2577 +#: stock/models.py:2575 msgid "The timestamp of the test finish" msgstr "" diff --git a/src/backend/InvenTree/order/api.py b/src/backend/InvenTree/order/api.py index 374941afbc..74afcdfbed 100644 --- a/src/backend/InvenTree/order/api.py +++ b/src/backend/InvenTree/order/api.py @@ -5,7 +5,6 @@ from typing import cast from django.conf import settings from django.contrib.auth import authenticate, login -from django.db import transaction from django.db.models import F, Q from django.http.response import JsonResponse from django.urls import include, path, re_path @@ -14,7 +13,6 @@ from django.utils.translation import gettext_lazy as _ from django_filters import rest_framework as rest_filters from django_ical.views import ICalFeed from rest_framework import status -from rest_framework.exceptions import ValidationError from rest_framework.response import Response import common.models @@ -214,54 +212,6 @@ class PurchaseOrderList(PurchaseOrderMixin, DataExportViewMixin, ListCreateAPI): filterset_class = PurchaseOrderFilter - def create(self, request, *args, **kwargs): - """Save user information on create.""" - data = self.clean_data(request.data) - - duplicate_order = data.pop('duplicate_order', None) - duplicate_line_items = str2bool(data.pop('duplicate_line_items', False)) - duplicate_extra_lines = str2bool(data.pop('duplicate_extra_lines', False)) - - if duplicate_order is not None: - try: - duplicate_order = models.PurchaseOrder.objects.get(pk=duplicate_order) - except (ValueError, models.PurchaseOrder.DoesNotExist): - raise ValidationError({ - 'duplicate_order': [_('No matching purchase order found')] - }) - - serializer = self.get_serializer(data=data) - serializer.is_valid(raise_exception=True) - - with transaction.atomic(): - order = serializer.save() - order.created_by = request.user - order.save() - - # Duplicate line items from other order if required - if duplicate_order is not None: - if duplicate_line_items: - for line in duplicate_order.lines.all(): - # Copy the line across to the new order - line.pk = None - line.order = order - line.received = 0 - - line.save() - - if duplicate_extra_lines: - for line in duplicate_order.extra_lines.all(): - # Copy the line across to the new order - line.pk = None - line.order = order - - line.save() - - headers = self.get_success_headers(serializer.data) - return Response( - serializer.data, status=status.HTTP_201_CREATED, headers=headers - ) - def filter_queryset(self, queryset): """Custom queryset filtering.""" # Perform basic filtering @@ -1041,11 +991,30 @@ class SalesOrderShipmentFilter(rest_filters.FilterSet): return queryset.filter(delivery_date=None) -class SalesOrderShipmentList(ListCreateAPI): - """API list endpoint for SalesOrderShipment model.""" +class SalesOrderShipmentMixin: + """Mixin class for SalesOrderShipment endpoints.""" queryset = models.SalesOrderShipment.objects.all() serializer_class = serializers.SalesOrderShipmentSerializer + + def get_queryset(self, *args, **kwargs): + """Return annotated queryset for this endpoint.""" + queryset = super().get_queryset(*args, **kwargs) + + queryset = queryset.prefetch_related( + 'order', + 'order__customer', + 'allocations', + 'allocations__item', + 'allocations__item__part', + ) + + return queryset + + +class SalesOrderShipmentList(SalesOrderShipmentMixin, ListCreateAPI): + """API list endpoint for SalesOrderShipment model.""" + filterset_class = SalesOrderShipmentFilter filter_backends = SEARCH_ORDER_FILTER_ALIAS @@ -1053,12 +1022,9 @@ class SalesOrderShipmentList(ListCreateAPI): ordering_fields = ['delivery_date', 'shipment_date'] -class SalesOrderShipmentDetail(RetrieveUpdateDestroyAPI): +class SalesOrderShipmentDetail(SalesOrderShipmentMixin, RetrieveUpdateDestroyAPI): """API detail endpooint for SalesOrderShipment model.""" - queryset = models.SalesOrderShipment.objects.all() - serializer_class = serializers.SalesOrderShipmentSerializer - class SalesOrderShipmentComplete(CreateAPI): """API endpoint for completing (shipping) a SalesOrderShipment.""" diff --git a/src/backend/InvenTree/order/models.py b/src/backend/InvenTree/order/models.py index d294eae75c..7c236037e5 100644 --- a/src/backend/InvenTree/order/models.py +++ b/src/backend/InvenTree/order/models.py @@ -247,6 +247,16 @@ class Order( 'contact': _('Contact does not match selected company') }) + def clean_line_item(self, line): + """Clean a line item for this order. + + Used when duplicating an existing line item, + to ensure it is 'fresh'. + """ + line.pk = None + line.target_date = None + line.order = self + def report_context(self): """Generate context data for the reporting interface.""" return { @@ -379,6 +389,11 @@ class PurchaseOrder(TotalPriceMixin, Order): verbose_name = _('Purchase Order') + def clean_line_item(self, line): + """Clean a line item for this PurchaseOrder.""" + super().clean_line_item(line) + line.received = 0 + def report_context(self): """Return report context data for this PurchaseOrder.""" return {**super().report_context(), 'supplier': self.supplier} @@ -892,6 +907,11 @@ class SalesOrder(TotalPriceMixin, Order): verbose_name = _('Sales Order') + def clean_line_item(self, line): + """Clean a line item for this SalesOrder.""" + super().clean_line_item(line) + line.shipped = 0 + def report_context(self): """Generate report context data for this SalesOrder.""" return {**super().report_context(), 'customer': self.customer} @@ -2083,6 +2103,12 @@ class ReturnOrder(TotalPriceMixin, Order): verbose_name = _('Return Order') + def clean_line_item(self, line): + """Clean a line item for this ReturnOrder.""" + super().clean_line_item(line) + line.received_date = None + line.outcome = ReturnOrderLineStatus.PENDING.value + def report_context(self): """Generate report context data for this ReturnOrder.""" return {**super().report_context(), 'customer': self.customer} diff --git a/src/backend/InvenTree/order/serializers.py b/src/backend/InvenTree/order/serializers.py index 2060c7b4b0..769ae3f456 100644 --- a/src/backend/InvenTree/order/serializers.py +++ b/src/backend/InvenTree/order/serializers.py @@ -74,10 +74,39 @@ class TotalPriceMixin(serializers.Serializer): ) +class DuplicateOrderSerializer(serializers.Serializer): + """Serializer for specifying options when duplicating an order.""" + + class Meta: + """Metaclass options.""" + + fields = ['order_id', 'copy_lines', 'copy_extra_lines'] + + order_id = serializers.IntegerField( + required=True, label=_('Order ID'), help_text=_('ID of the order to duplicate') + ) + + copy_lines = serializers.BooleanField( + required=False, + default=True, + label=_('Copy Lines'), + help_text=_('Copy line items from the original order'), + ) + + copy_extra_lines = serializers.BooleanField( + required=False, + default=True, + label=_('Copy Extra Lines'), + help_text=_('Copy extra line items from the original order'), + ) + + class AbstractOrderSerializer(DataImportExportSerializerMixin, serializers.Serializer): """Abstract serializer class which provides fields common to all order types.""" - export_exclude_fields = ['notes'] + export_exclude_fields = ['notes', 'duplicate'] + + import_exclude_fields = ['notes', 'duplicate'] # Number of line items in this order line_items = serializers.IntegerField(read_only=True, label=_('Line Items')) @@ -127,6 +156,13 @@ class AbstractOrderSerializer(DataImportExportSerializerMixin, serializers.Seria required=False, allow_null=True, label=_('Creation Date') ) + duplicate = DuplicateOrderSerializer( + label=_('Duplicate Order'), + help_text=_('Specify options for duplicating this order'), + required=False, + write_only=True, + ) + def validate_reference(self, reference): """Custom validation for the reference field.""" self.Meta.model.validate_reference_field(reference) @@ -166,9 +202,49 @@ class AbstractOrderSerializer(DataImportExportSerializerMixin, serializers.Seria 'notes', 'barcode_hash', 'overdue', + 'duplicate', *extra_fields, ] + def clean_line_item(self, line): + """Clean a line item object (when duplicating).""" + line.pk = None + line.order = self + + @transaction.atomic + def create(self, validated_data): + """Create a new order object. + + Optionally, copy line items from an existing order. + """ + duplicate = validated_data.pop('duplicate', None) + + instance = super().create(validated_data) + + if duplicate: + order_id = duplicate.get('order_id', None) + copy_lines = duplicate.get('copy_lines', True) + copy_extra_lines = duplicate.get('copy_extra_lines', True) + + try: + copy_from = instance.__class__.objects.get(pk=order_id) + except Exception: + # If the order ID is invalid, raise a validation error + raise ValidationError(_('Invalid order ID')) + + if copy_lines: + for line in copy_from.lines.all(): + instance.clean_line_item(line) + line.save() + + if copy_extra_lines: + for line in copy_from.extra_lines.all(): + line.pk = None + line.order = instance + line.save() + + return instance + class AbstractLineItemSerializer: """Abstract serializer for LineItem object.""" @@ -259,6 +335,12 @@ class PurchaseOrderSerializer( if supplier_detail is not True: self.fields.pop('supplier_detail', None) + def skip_create_fields(self): + """Skip these fields when instantiating a new object.""" + fields = super().skip_create_fields() + + return [*fields, 'duplicate'] + @staticmethod def annotate_queryset(queryset): """Add extra information to the queryset. @@ -900,6 +982,12 @@ class SalesOrderSerializer( if customer_detail is not True: self.fields.pop('customer_detail', None) + def skip_create_fields(self): + """Skip these fields when instantiating a new object.""" + fields = super().skip_create_fields() + + return [*fields, 'duplicate'] + @staticmethod def annotate_queryset(queryset): """Add extra information to the queryset. @@ -1692,6 +1780,12 @@ class ReturnOrderSerializer( if customer_detail is not True: self.fields.pop('customer_detail', None) + def skip_create_fields(self): + """Skip these fields when instantiating a new object.""" + fields = super().skip_create_fields() + + return [*fields, 'duplicate'] + @staticmethod def annotate_queryset(queryset): """Custom annotation for the serializer queryset.""" diff --git a/src/backend/InvenTree/order/test_api.py b/src/backend/InvenTree/order/test_api.py index 3dfd6d4737..7599442a84 100644 --- a/src/backend/InvenTree/order/test_api.py +++ b/src/backend/InvenTree/order/test_api.py @@ -439,18 +439,22 @@ class PurchaseOrderTest(OrderTest): del data['reference'] # Duplicate with non-existent PK to provoke error - data['duplicate_order'] = 10000001 - data['duplicate_line_items'] = True - data['duplicate_extra_lines'] = False + data['duplicate'] = { + 'order_id': 10000001, + 'copy_lines': True, + 'copy_extra_lines': False, + } data['reference'] = 'PO-9999' # Duplicate via the API response = self.post(reverse('api-po-list'), data, expected_code=400) - data['duplicate_order'] = 1 - data['duplicate_line_items'] = True - data['duplicate_extra_lines'] = False + data['duplicate'] = { + 'order_id': 1, + 'copy_lines': True, + 'copy_extra_lines': False, + } data['reference'] = 'PO-9999' @@ -466,8 +470,12 @@ class PurchaseOrderTest(OrderTest): self.assertEqual(po_dup.lines.count(), po.lines.count()) data['reference'] = 'PO-9998' - data['duplicate_line_items'] = False - data['duplicate_extra_lines'] = True + + data['duplicate'] = { + 'order_id': 1, + 'copy_lines': False, + 'copy_extra_lines': True, + } response = self.post(reverse('api-po-list'), data, expected_code=201) diff --git a/src/backend/InvenTree/part/api.py b/src/backend/InvenTree/part/api.py index ac4a59fcad..1285378de2 100644 --- a/src/backend/InvenTree/part/api.py +++ b/src/backend/InvenTree/part/api.py @@ -1715,6 +1715,13 @@ class PartStocktakeReportList(ListAPI): ordering = '-pk' +class PartStocktakeReportDetail(RetrieveUpdateDestroyAPI): + """API endpoint for detail view of a single PartStocktakeReport object.""" + + queryset = PartStocktakeReport.objects.all() + serializer_class = part_serializers.PartStocktakeReportSerializer + + class PartStocktakeReportGenerate(CreateAPI): """API endpoint for manually generating a new PartStocktakeReport.""" @@ -2184,6 +2191,11 @@ part_api_urls = [ PartStocktakeReportGenerate.as_view(), name='api-part-stocktake-report-generate', ), + path( + '/', + PartStocktakeReportDetail.as_view(), + name='api-part-stocktake-report-detail', + ), path( '', PartStocktakeReportList.as_view(), diff --git a/src/backend/InvenTree/part/serializers.py b/src/backend/InvenTree/part/serializers.py index 4ad688df0b..c520ca2abd 100644 --- a/src/backend/InvenTree/part/serializers.py +++ b/src/backend/InvenTree/part/serializers.py @@ -1193,6 +1193,7 @@ class PartStocktakeReportSerializer(InvenTree.serializers.InvenTreeModelSerializ model = PartStocktakeReport fields = ['pk', 'date', 'report', 'part_count', 'user', 'user_detail'] + read_only_fields = ['date', 'report', 'part_count', 'user'] user_detail = InvenTree.serializers.UserSerializer( source='user', read_only=True, many=False diff --git a/src/backend/InvenTree/plugin/api.py b/src/backend/InvenTree/plugin/api.py index 1d3f6763f8..4b2172929b 100644 --- a/src/backend/InvenTree/plugin/api.py +++ b/src/backend/InvenTree/plugin/api.py @@ -11,12 +11,15 @@ from django_filters.rest_framework import DjangoFilterBackend from drf_spectacular.utils import extend_schema from rest_framework import permissions, status from rest_framework.exceptions import NotFound +from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView import plugin.serializers as PluginSerializers from common.api import GlobalSettingsPermissions +from common.settings import get_global_setting from InvenTree.api import MetadataView +from InvenTree.exceptions import log_error from InvenTree.filters import SEARCH_ORDER_FILTER from InvenTree.mixins import ( CreateAPI, @@ -414,6 +417,43 @@ class RegistryStatusView(APIView): return Response(result) +class PluginPanelList(APIView): + """API endpoint for listing all available plugin panels.""" + + permission_classes = [IsAuthenticated] + serializer_class = PluginSerializers.PluginPanelSerializer + + @extend_schema(responses={200: PluginSerializers.PluginPanelSerializer(many=True)}) + def get(self, request): + """Show available plugin panels.""" + target_model = request.query_params.get('target_model', None) + target_id = request.query_params.get('target_id', None) + + panels = [] + + if get_global_setting('ENABLE_PLUGINS_INTERFACE'): + # Extract all plugins from the registry which provide custom panels + for _plugin in registry.with_mixin('ui', active=True): + try: + # Allow plugins to fill this data out + plugin_panels = _plugin.get_ui_panels( + target_model, target_id, request + ) + + if plugin_panels and type(plugin_panels) is list: + for panel in plugin_panels: + panel['plugin'] = _plugin.slug + + # TODO: Validate each panel before inserting + panels.append(panel) + except Exception: + # Custom panels could not load + # Log the error and continue + log_error(f'{_plugin.slug}.get_ui_panels') + + return Response(PluginSerializers.PluginPanelSerializer(panels, many=True).data) + + class PluginMetadataView(MetadataView): """Metadata API endpoint for the PluginConfig model.""" @@ -428,6 +468,21 @@ plugin_api_urls = [ path( 'plugins/', include([ + path( + 'ui/', + include([ + path( + 'panels/', + include([ + path( + '', + PluginPanelList.as_view(), + name='api-plugin-panel-list', + ) + ]), + ) + ]), + ), # Plugin management path('reload/', PluginReload.as_view(), name='api-plugin-reload'), path('install/', PluginInstall.as_view(), name='api-plugin-install'), diff --git a/src/backend/InvenTree/plugin/base/barcodes/api.py b/src/backend/InvenTree/plugin/base/barcodes/api.py index a497c79a62..e506b1adc3 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/api.py +++ b/src/backend/InvenTree/plugin/base/barcodes/api.py @@ -3,19 +3,27 @@ import logging from django.db.models import F -from django.urls import path +from django.urls import include, path from django.utils.translation import gettext_lazy as _ +from django_filters import rest_framework as rest_filters from drf_spectacular.utils import extend_schema, extend_schema_view from rest_framework import permissions, status from rest_framework.exceptions import PermissionDenied, ValidationError from rest_framework.generics import CreateAPIView from rest_framework.response import Response +import common.models import order.models import plugin.base.barcodes.helper import stock.models +from common.settings import get_global_setting +from InvenTree.api import BulkDeleteMixin +from InvenTree.exceptions import log_error +from InvenTree.filters import SEARCH_ORDER_FILTER from InvenTree.helpers import hash_barcode +from InvenTree.mixins import ListAPI, RetrieveDestroyAPI +from InvenTree.permissions import IsStaffOrReadOnly from plugin import registry from users.models import RuleSet @@ -30,6 +38,70 @@ class BarcodeView(CreateAPIView): # Default serializer class (can be overridden) serializer_class = barcode_serializers.BarcodeSerializer + def log_scan(self, request, response=None, result=False): + """Log a barcode scan to the database. + + Arguments: + request: HTTP request object + response: Optional response data + """ + from common.models import BarcodeScanResult + + # Extract context data from the request + context = {**request.GET.dict(), **request.POST.dict(), **request.data} + + barcode = context.pop('barcode', '') + + # Exit if storing barcode scans is disabled + if not get_global_setting('BARCODE_STORE_RESULTS', backup=False, create=False): + return + + # Ensure that the response data is stringified first, otherwise cannot be JSON encoded + if type(response) is dict: + response = {key: str(value) for key, value in response.items()} + elif response is None: + pass + else: + response = str(response) + + # Ensure that the context data is stringified first, otherwise cannot be JSON encoded + if type(context) is dict: + context = {key: str(value) for key, value in context.items()} + elif context is None: + pass + else: + context = str(context) + + # Ensure data is not too long + if len(barcode) > BarcodeScanResult.BARCODE_SCAN_MAX_LEN: + barcode = barcode[: BarcodeScanResult.BARCODE_SCAN_MAX_LEN] + + try: + BarcodeScanResult.objects.create( + data=barcode, + user=request.user, + endpoint=request.path, + response=response, + result=result, + context=context, + ) + + # Ensure that we do not store too many scans + max_scans = int(get_global_setting('BARCODE_RESULTS_MAX_NUM', create=False)) + num_scans = BarcodeScanResult.objects.count() + + if num_scans > max_scans: + n = num_scans - max_scans + old_scan_ids = ( + BarcodeScanResult.objects.all() + .order_by('timestamp') + .values_list('pk', flat=True)[:n] + ) + BarcodeScanResult.objects.filter(pk__in=old_scan_ids).delete() + except Exception: + # Gracefully log error to database + log_error(f'{self.__class__.__name__}.log_scan') + def queryset(self): """This API view does not have a queryset.""" return None @@ -40,7 +112,13 @@ class BarcodeView(CreateAPIView): def create(self, request, *args, **kwargs): """Handle create method - override default create.""" serializer = self.get_serializer(data=request.data) - serializer.is_valid(raise_exception=True) + + try: + serializer.is_valid(raise_exception=True) + except Exception as exc: + self.log_scan(request, response={'error': str(exc)}, result=False) + raise exc + data = serializer.validated_data barcode = str(data.pop('barcode')).strip() @@ -119,15 +197,19 @@ class BarcodeScan(BarcodeView): kwargs: Any custom fields passed by the specific serializer """ - result = self.scan_barcode(barcode, request, **kwargs) + response = self.scan_barcode(barcode, request, **kwargs) - if result['plugin'] is None: - result['error'] = _('No match found for barcode data') + if response['plugin'] is None: + response['error'] = _('No match found for barcode data') + self.log_scan(request, response, False) + raise ValidationError(response) - raise ValidationError(result) + response['success'] = _('Match found for barcode data') - result['success'] = _('Match found for barcode data') - return Response(result) + # Log the scan result + self.log_scan(request, response, True) + + return Response(response) @extend_schema_view( @@ -333,7 +415,7 @@ class BarcodePOAllocate(BarcodeView): 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')}) + raise ValidationError(_('No matching part data found')) if part and (part_id := part.get('pk', None)): supplier_parts = supplier_parts.filter(part__pk=part_id) @@ -349,12 +431,10 @@ class BarcodePOAllocate(BarcodeView): ) if supplier_parts.count() == 0: - raise ValidationError({'error': _('No matching supplier parts found')}) + raise ValidationError(_('No matching supplier parts found')) if supplier_parts.count() > 1: - raise ValidationError({ - 'error': _('Multiple matching supplier parts found') - }) + raise ValidationError(_('Multiple matching supplier parts found')) # At this stage, we have a single matching supplier part return supplier_parts.first() @@ -364,25 +444,32 @@ class BarcodePOAllocate(BarcodeView): # The purchase order is provided as part of the request purchase_order = kwargs.get('purchase_order') - result = self.scan_barcode(barcode, request, **kwargs) + response = self.scan_barcode(barcode, request, **kwargs) - if result['plugin'] is None: - result['error'] = _('No match found for barcode data') - raise ValidationError(result) + if response['plugin'] is None: + response['error'] = _('No matching plugin found for barcode data') - 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() + else: + try: + supplier_part = self.get_supplier_part( + purchase_order, + part=response.get('part', None), + supplier_part=response.get('supplierpart', None), + manufacturer_part=response.get('manufacturerpart', None), + ) + response['success'] = _('Matched supplier part') + response['supplierpart'] = supplier_part.format_matched_response() + except ValidationError as e: + response['error'] = str(e) # TODO: Determine the 'quantity to order' for the supplier part - return Response(result) + self.log_scan(request, response, 'success' in response) + + if 'error' in response: + raise ValidationError + + return Response(response) class BarcodePOReceive(BarcodeView): @@ -427,6 +514,7 @@ class BarcodePOReceive(BarcodeView): if result := internal_barcode_plugin.scan(barcode): if 'stockitem' in result: response['error'] = _('Item has already been received') + self.log_scan(request, response, False) raise ValidationError(response) # Now, look just for "supplier-barcode" plugins @@ -464,11 +552,13 @@ class BarcodePOReceive(BarcodeView): # A plugin has not been found! if plugin is None: response['error'] = _('No match for supplier barcode') + + self.log_scan(request, response, 'success' in response) + + if 'error' in response: raise ValidationError(response) - elif 'error' in response: - raise ValidationError(response) - else: - return Response(response) + + return Response(response) class BarcodeSOAllocate(BarcodeView): @@ -489,7 +579,11 @@ class BarcodeSOAllocate(BarcodeView): serializer_class = barcode_serializers.BarcodeSOAllocateSerializer def get_line_item(self, stock_item, **kwargs): - """Return the matching line item for the provided stock item.""" + """Return the matching line item for the provided stock item. + + Raises: + ValidationError: If no single matching line item is found + """ # Extract sales order object (required field) sales_order = kwargs['sales_order'] @@ -506,22 +600,24 @@ class BarcodeSOAllocate(BarcodeView): ) if lines.count() > 1: - raise ValidationError({'error': _('Multiple matching line items found')}) + raise ValidationError(_('Multiple matching line items found')) if lines.count() == 0: - raise ValidationError({'error': _('No matching line item found')}) + raise ValidationError(_('No matching line item found')) return lines.first() def get_shipment(self, **kwargs): - """Extract the shipment from the provided kwargs, or guess.""" + """Extract the shipment from the provided kwargs, or guess. + + Raises: + ValidationError: If the shipment does not match the sales order + """ sales_order = kwargs['sales_order'] if shipment := kwargs.get('shipment', None): if shipment.order != sales_order: - raise ValidationError({ - 'error': _('Shipment does not match sales order') - }) + raise ValidationError(_('Shipment does not match sales order')) return shipment @@ -536,37 +632,55 @@ class BarcodeSOAllocate(BarcodeView): return None def handle_barcode(self, barcode: str, request, **kwargs): - """Handle barcode scan for sales order allocation.""" + """Handle barcode scan for sales order allocation. + + Arguments: + barcode: Raw barcode data + request: HTTP request object + + kwargs: + sales_order: SalesOrder ID value (required) + line: SalesOrderLineItem ID value (optional) + shipment: SalesOrderShipment ID value (optional) + """ logger.debug("BarcodeSOAllocate: scanned barcode - '%s'", barcode) - result = self.scan_barcode(barcode, request, **kwargs) + response = self.scan_barcode(barcode, request, **kwargs) - if result['plugin'] is None: - result['error'] = _('No match found for barcode data') - raise ValidationError(result) + if 'sales_order' not in kwargs: + # SalesOrder ID *must* be provided + response['error'] = _('No sales order provided') + elif response['plugin'] is None: + # Check that the barcode at least matches a plugin + response['error'] = _('No matching plugin found for barcode data') + else: + try: + stock_item_id = response['stockitem'].get('pk', None) + stock_item = stock.models.StockItem.objects.get(pk=stock_item_id) + except Exception: + response['error'] = _('Barcode does not match an existing stock item') - # Check that the scanned barcode was a StockItem - if 'stockitem' not in result: - result['error'] = _('Barcode does not match an existing stock item') - raise ValidationError(result) - - try: - stock_item_id = result['stockitem'].get('pk', None) - stock_item = stock.models.StockItem.objects.get(pk=stock_item_id) - except (ValueError, stock.models.StockItem.DoesNotExist): - result['error'] = _('Barcode does not match an existing stock item') - raise ValidationError(result) + if 'error' in response: + self.log_scan(request, response, False) + raise ValidationError(response) # At this stage, we have a valid StockItem object - # Extract any other data from the kwargs - line_item = self.get_line_item(stock_item, **kwargs) - sales_order = kwargs['sales_order'] - shipment = self.get_shipment(**kwargs) - if stock_item is not None and line_item is not None: - if stock_item.part != line_item.part: - result['error'] = _('Stock item does not match line item') - raise ValidationError(result) + try: + # Extract any other data from the kwargs + # Note: This may raise a ValidationError at some point - we break on the first error + sales_order = kwargs['sales_order'] + line_item = self.get_line_item(stock_item, **kwargs) + shipment = self.get_shipment(**kwargs) + if stock_item is not None and line_item is not None: + if stock_item.part != line_item.part: + response['error'] = _('Stock item does not match line item') + except ValidationError as e: + response['error'] = str(e) + + if 'error' in response: + self.log_scan(request, response, False) + raise ValidationError(response) quantity = kwargs.get('quantity', None) @@ -574,11 +688,12 @@ class BarcodeSOAllocate(BarcodeView): if stock_item.serialized: quantity = 1 - if quantity is None: + elif quantity is None: quantity = line_item.quantity - line_item.shipped quantity = min(quantity, stock_item.unallocated_quantity()) response = { + **response, 'stock_item': stock_item.pk if stock_item else None, 'part': stock_item.part.pk if stock_item else None, 'sales_order': sales_order.pk if sales_order else None, @@ -590,25 +705,91 @@ class BarcodeSOAllocate(BarcodeView): if stock_item is not None and quantity is not None: if stock_item.unallocated_quantity() < quantity: response['error'] = _('Insufficient stock available') - raise ValidationError(response) - # If we have sufficient information, we can allocate the stock item - if all(x is not None for x in [line_item, sales_order, shipment, quantity]): - order.models.SalesOrderAllocation.objects.create( - line=line_item, shipment=shipment, item=stock_item, quantity=quantity - ) + # If we have sufficient information, we can allocate the stock item + elif all( + x is not None for x in [line_item, sales_order, shipment, quantity] + ): + order.models.SalesOrderAllocation.objects.create( + line=line_item, + shipment=shipment, + item=stock_item, + quantity=quantity, + ) - response['success'] = _('Stock item allocated to sales order') + response['success'] = _('Stock item allocated to sales order') + else: + response['error'] = _('Not enough information') + response['action_required'] = True + + self.log_scan(request, response, 'success' in response) + + if 'error' in response: + raise ValidationError(response) + else: return Response(response) - response['error'] = _('Not enough information') - response['action_required'] = True - raise ValidationError(response) +class BarcodeScanResultMixin: + """Mixin class for BarcodeScan API endpoints.""" + + queryset = common.models.BarcodeScanResult.objects.all() + serializer_class = barcode_serializers.BarcodeScanResultSerializer + permission_classes = [permissions.IsAuthenticated, IsStaffOrReadOnly] + + def get_queryset(self): + """Return the queryset for the BarcodeScan API.""" + queryset = super().get_queryset() + + # Pre-fetch user data + queryset = queryset.prefetch_related('user') + + return queryset + + +class BarcodeScanResultFilter(rest_filters.FilterSet): + """Custom filterset for the BarcodeScanResult API.""" + + class Meta: + """Meta class for the BarcodeScanResultFilter.""" + + model = common.models.BarcodeScanResult + fields = ['user', 'result'] + + +class BarcodeScanResultList(BarcodeScanResultMixin, BulkDeleteMixin, ListAPI): + """List API endpoint for BarcodeScan objects.""" + + filterset_class = BarcodeScanResultFilter + filter_backends = SEARCH_ORDER_FILTER + + ordering_fields = ['user', 'plugin', 'timestamp', 'endpoint', 'result'] + + ordering = '-timestamp' + + search_fields = ['plugin'] + + +class BarcodeScanResultDetail(BarcodeScanResultMixin, RetrieveDestroyAPI): + """Detail endpoint for a BarcodeScan object.""" barcode_api_urls = [ + # Barcode scan history + path( + 'history/', + include([ + path( + '/', + BarcodeScanResultDetail.as_view(), + name='api-barcode-scan-result-detail', + ), + path( + '', BarcodeScanResultList.as_view(), name='api-barcode-scan-result-list' + ), + ]), + ), # Generate a barcode for a database object path('generate/', BarcodeGenerate.as_view(), name='api-barcode-generate'), # Link a third-party barcode to an item (e.g. Part / StockItem / etc) diff --git a/src/backend/InvenTree/plugin/base/barcodes/serializers.py b/src/backend/InvenTree/plugin/base/barcodes/serializers.py index 99baebeff0..a94d7b5bc0 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/serializers.py +++ b/src/backend/InvenTree/plugin/base/barcodes/serializers.py @@ -5,12 +5,39 @@ from django.utils.translation import gettext_lazy as _ from rest_framework import serializers +import common.models import order.models import plugin.base.barcodes.helper import stock.models +from InvenTree.serializers import UserSerializer from order.status_codes import PurchaseOrderStatus, SalesOrderStatus +class BarcodeScanResultSerializer(serializers.ModelSerializer): + """Serializer for barcode scan results.""" + + class Meta: + """Meta class for BarcodeScanResultSerializer.""" + + model = common.models.BarcodeScanResult + + fields = [ + 'pk', + 'data', + 'timestamp', + 'endpoint', + 'context', + 'response', + 'result', + 'user', + 'user_detail', + ] + + read_only_fields = fields + + user_detail = UserSerializer(source='user', read_only=True) + + class BarcodeSerializer(serializers.Serializer): """Generic serializer for receiving barcode data.""" diff --git a/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py b/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py index 9512a31fa5..5048af66c0 100644 --- a/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py +++ b/src/backend/InvenTree/plugin/base/barcodes/test_barcode.py @@ -4,6 +4,8 @@ from django.urls import reverse import company.models import order.models +from common.models import BarcodeScanResult +from common.settings import set_global_setting from InvenTree.unit_test import InvenTreeAPITestCase from part.models import Part from stock.models import StockItem @@ -89,6 +91,11 @@ class BarcodeAPITest(InvenTreeAPITestCase): """Test that we can lookup a stock item based on ID.""" item = StockItem.objects.first() + # Save barcode scan results to database + set_global_setting('BARCODE_STORE_RESULTS', True) + + n = BarcodeScanResult.objects.count() + response = self.post( self.scan_url, {'barcode': item.format_barcode()}, expected_code=200 ) @@ -97,6 +104,20 @@ class BarcodeAPITest(InvenTreeAPITestCase): self.assertIn('barcode_data', response.data) self.assertEqual(response.data['stockitem']['pk'], item.pk) + self.assertEqual(BarcodeScanResult.objects.count(), n + 1) + + result = BarcodeScanResult.objects.last() + + self.assertTrue(result.result) + self.assertEqual(result.data, item.format_barcode()) + + response = result.response + + self.assertEqual(response['plugin'], 'InvenTreeBarcode') + + for k in ['barcode_data', 'stockitem', 'success']: + self.assertIn(k, response) + def test_invalid_item(self): """Test response for invalid stock item.""" response = self.post( @@ -309,7 +330,7 @@ class SOAllocateTest(InvenTreeAPITestCase): '123456789', sales_order=self.sales_order.pk, expected_code=400 ) - self.assertIn('No match found for barcode', str(result['error'])) + self.assertIn('No matching plugin found for barcode data', str(result['error'])) # Test with a barcode that matches a *different* stock item item = StockItem.objects.exclude(pk=self.stock_item.pk).first() diff --git a/src/backend/InvenTree/plugin/base/integration/UserInterfaceMixin.py b/src/backend/InvenTree/plugin/base/integration/UserInterfaceMixin.py new file mode 100644 index 0000000000..7c70dd2c4e --- /dev/null +++ b/src/backend/InvenTree/plugin/base/integration/UserInterfaceMixin.py @@ -0,0 +1,80 @@ +"""UserInterfaceMixin class definition. + +Allows integration of custom UI elements into the React user interface. +""" + +import logging +from typing import TypedDict + +from rest_framework.request import Request + +logger = logging.getLogger('inventree') + + +class CustomPanel(TypedDict): + """Type definition for a custom panel. + + Attributes: + name: The name of the panel (required, used as a DOM identifier). + label: The label of the panel (required, human readable). + icon: The icon of the panel (optional, must be a valid icon identifier). + content: The content of the panel (optional, raw HTML). + source: The source of the panel (optional, path to a JavaScript file). + """ + + name: str + label: str + icon: str + content: str + source: str + + +class UserInterfaceMixin: + """Plugin mixin class which handles injection of custom elements into the front-end interface. + + - All content is accessed via the API, as requested by the user interface. + - This means that content can be dynamically generated, based on the current state of the system. + + The following custom UI methods are available: + - get_ui_panels: Return a list of custom panels to be injected into the UI + + """ + + class MixinMeta: + """Metaclass for this plugin mixin.""" + + MIXIN_NAME = 'ui' + + def __init__(self): + """Register mixin.""" + super().__init__() + self.add_mixin('ui', True, __class__) + + def get_ui_panels( + self, instance_type: str, instance_id: int, request: Request, **kwargs + ) -> list[CustomPanel]: + """Return a list of custom panels to be injected into the UI. + + Args: + instance_type: The type of object being viewed (e.g. 'part') + instance_id: The ID of the object being viewed (e.g. 123) + request: HTTPRequest object (including user information) + + Returns: + list: A list of custom panels to be injected into the UI + + - The returned list should contain a dict for each custom panel to be injected into the UI: + - The following keys can be specified: + { + 'name': 'panel_name', # The name of the panel (required, must be unique) + 'label': 'Panel Title', # The title of the panel (required, human readable) + 'icon': 'icon-name', # Icon name (optional, must be a valid icon identifier) + 'content': '

Panel content

', # HTML content to be rendered in the panel (optional) + 'source': 'static/plugin/panel.js', # Path to a JavaScript file to be loaded (optional) + } + + - Either 'source' or 'content' must be provided + + """ + # Default implementation returns an empty list + return [] diff --git a/src/backend/InvenTree/plugin/base/integration/test_mixins.py b/src/backend/InvenTree/plugin/base/integration/test_mixins.py index 43bd7b9d1f..83caccad30 100644 --- a/src/backend/InvenTree/plugin/base/integration/test_mixins.py +++ b/src/backend/InvenTree/plugin/base/integration/test_mixins.py @@ -8,7 +8,8 @@ from django.urls import include, path, re_path, reverse from error_report.models import Error -from InvenTree.unit_test import InvenTreeTestCase +from common.models import InvenTreeSetting +from InvenTree.unit_test import InvenTreeAPITestCase, InvenTreeTestCase from plugin import InvenTreePlugin from plugin.base.integration.PanelMixin import PanelMixin from plugin.helpers import MixinNotImplementedError @@ -341,7 +342,10 @@ class APICallMixinTest(BaseMixinDefinition, TestCase): class PanelMixinTests(InvenTreeTestCase): - """Test that the PanelMixin plugin operates correctly.""" + """Test that the PanelMixin plugin operates correctly. + + TODO: This class will be removed in the future, as the PanelMixin is deprecated. + """ fixtures = ['category', 'part', 'location', 'stock'] @@ -475,3 +479,100 @@ class PanelMixinTests(InvenTreeTestCase): plugin = Wrong() plugin.get_custom_panels('abc', 'abc') + + +class UserInterfaceMixinTests(InvenTreeAPITestCase): + """Test the UserInterfaceMixin plugin mixin class.""" + + roles = 'all' + + fixtures = ['part', 'category', 'location', 'stock'] + + @classmethod + def setUpTestData(cls): + """Set up the test case.""" + super().setUpTestData() + + # Ensure that the 'sampleui' plugin is installed and active + registry.set_plugin_state('sampleui', True) + + # Ensure that UI plugins are enabled + InvenTreeSetting.set_setting('ENABLE_PLUGINS_INTERFACE', True, change_user=None) + + def test_installed(self): + """Test that the sample UI plugin is installed and active.""" + plugin = registry.get_plugin('sampleui') + self.assertTrue(plugin.is_active()) + + plugins = registry.with_mixin('ui') + self.assertGreater(len(plugins), 0) + + def test_panels(self): + """Test that the sample UI plugin provides custom panels.""" + from part.models import Part + + plugin = registry.get_plugin('sampleui') + + _part = Part.objects.first() + + # Ensure that the part is active + _part.active = True + _part.save() + + url = reverse('api-plugin-panel-list') + + query_data = {'target_model': 'part', 'target_id': _part.pk} + + # Enable *all* plugin settings + plugin.set_setting('ENABLE_PART_PANELS', True) + plugin.set_setting('ENABLE_PURCHASE_ORDER_PANELS', True) + plugin.set_setting('ENABLE_BROKEN_PANELS', True) + plugin.set_setting('ENABLE_DYNAMIC_PANEL', True) + + # Request custom panel information for a part instance + response = self.get(url, data=query_data) + + # There should be 4 active panels for the part by default + self.assertEqual(4, len(response.data)) + + _part.active = False + _part.save() + + response = self.get(url, data=query_data) + + # As the part is not active, only 3 panels left + self.assertEqual(3, len(response.data)) + + # Disable the "ENABLE_PART_PANELS" setting, and try again + plugin.set_setting('ENABLE_PART_PANELS', False) + + response = self.get(url, data=query_data) + + # There should still be 3 panels + self.assertEqual(3, len(response.data)) + + # Check for the correct panel names + self.assertEqual(response.data[0]['name'], 'sample_panel') + self.assertIn('content', response.data[0]) + self.assertNotIn('source', response.data[0]) + + self.assertEqual(response.data[1]['name'], 'broken_panel') + self.assertEqual(response.data[1]['source'], '/this/does/not/exist.js') + self.assertNotIn('content', response.data[1]) + + self.assertEqual(response.data[2]['name'], 'dynamic_panel') + self.assertEqual(response.data[2]['source'], '/static/plugin/sample_panel.js') + self.assertNotIn('content', response.data[2]) + + # Next, disable the global setting for UI integration + InvenTreeSetting.set_setting( + 'ENABLE_PLUGINS_INTERFACE', False, change_user=None + ) + + response = self.get(url, data=query_data) + + # There should be no panels available + self.assertEqual(0, len(response.data)) + + # Set the setting back to True for subsequent tests + InvenTreeSetting.set_setting('ENABLE_PLUGINS_INTERFACE', True, change_user=None) diff --git a/src/backend/InvenTree/plugin/installer.py b/src/backend/InvenTree/plugin/installer.py index c8b0094ae3..4d706aaad2 100644 --- a/src/backend/InvenTree/plugin/installer.py +++ b/src/backend/InvenTree/plugin/installer.py @@ -10,6 +10,7 @@ from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ import plugin.models +import plugin.staticfiles from InvenTree.exceptions import log_error logger = logging.getLogger('inventree') @@ -119,6 +120,10 @@ def install_plugins_file(): log_error('pip') return False + # Update static files + plugin.staticfiles.collect_plugins_static_files() + plugin.staticfiles.clear_plugins_static_files() + # At this point, the plugins file has been installed return True @@ -256,6 +261,9 @@ def install_plugin(url=None, packagename=None, user=None, version=None): registry.reload_plugins(full_reload=True, force_reload=True, collect=True) + # Update static files + plugin.staticfiles.collect_plugins_static_files() + return ret @@ -320,6 +328,9 @@ def uninstall_plugin(cfg: plugin.models.PluginConfig, user=None, delete_config=T # Remove the plugin configuration from the database cfg.delete() + # Remove static files associated with this plugin + plugin.staticfiles.clear_plugin_static_files(cfg.key) + # Reload the plugin registry registry.reload_plugins(full_reload=True, force_reload=True, collect=True) diff --git a/src/backend/InvenTree/plugin/mixins/__init__.py b/src/backend/InvenTree/plugin/mixins/__init__.py index 1fa960c306..1de17d613d 100644 --- a/src/backend/InvenTree/plugin/mixins/__init__.py +++ b/src/backend/InvenTree/plugin/mixins/__init__.py @@ -14,6 +14,7 @@ from plugin.base.integration.ReportMixin import ReportMixin from plugin.base.integration.ScheduleMixin import ScheduleMixin from plugin.base.integration.SettingsMixin import SettingsMixin from plugin.base.integration.UrlsMixin import UrlsMixin +from plugin.base.integration.UserInterfaceMixin import UserInterfaceMixin from plugin.base.integration.ValidationMixin import ValidationMixin from plugin.base.label.mixins import LabelPrintingMixin from plugin.base.locate.mixins import LocateMixin @@ -38,5 +39,7 @@ __all__ = [ 'SingleNotificationMethod', 'SupplierBarcodeMixin', 'UrlsMixin', + 'UrlsMixin', + 'UserInterfaceMixin', 'ValidationMixin', ] diff --git a/src/backend/InvenTree/plugin/registry.py b/src/backend/InvenTree/plugin/registry.py index 7663fecb2a..65166a7921 100644 --- a/src/backend/InvenTree/plugin/registry.py +++ b/src/backend/InvenTree/plugin/registry.py @@ -742,11 +742,12 @@ class PluginsRegistry: def plugin_settings_keys(self): """A list of keys which are used to store plugin settings.""" return [ - 'ENABLE_PLUGINS_URL', - 'ENABLE_PLUGINS_NAVIGATION', 'ENABLE_PLUGINS_APP', - 'ENABLE_PLUGINS_SCHEDULE', 'ENABLE_PLUGINS_EVENTS', + 'ENABLE_PLUGINS_INTERFACE', + 'ENABLE_PLUGINS_NAVIGATION', + 'ENABLE_PLUGINS_SCHEDULE', + 'ENABLE_PLUGINS_URL', ] def calculate_plugin_hash(self): diff --git a/src/backend/InvenTree/plugin/samples/integration/templates/uidemo/custom_part_panel.html b/src/backend/InvenTree/plugin/samples/integration/templates/uidemo/custom_part_panel.html new file mode 100644 index 0000000000..72815ed67e --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/integration/templates/uidemo/custom_part_panel.html @@ -0,0 +1,30 @@ +{% load i18n %} + +

Custom Plugin Panel

+ +

+This content has been rendered by a custom plugin, and will be displayed for any "part" instance +(as long as the plugin is enabled). +This content has been rendered on the server, using the django templating system. +

+ +
Part Details
+ + + + + + + + + + + + + + + + + + +
Part Name{{ part.name }}
Part Description{{ part.description }}
Part Category{{ part.category.pathstring }}
Part IPN{% if part.IPN %}{{ part.IPN }}{% else %}No IPN specified{% endif %}
diff --git a/src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py b/src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py new file mode 100644 index 0000000000..deaa655e24 --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/integration/user_interface_sample.py @@ -0,0 +1,124 @@ +"""Sample plugin which demonstrates user interface integrations.""" + +from django.utils.translation import gettext_lazy as _ + +from part.models import Part +from plugin import InvenTreePlugin +from plugin.helpers import render_template, render_text +from plugin.mixins import SettingsMixin, UserInterfaceMixin + + +class SampleUserInterfacePlugin(SettingsMixin, UserInterfaceMixin, InvenTreePlugin): + """A sample plugin which demonstrates user interface integrations.""" + + NAME = 'SampleUI' + SLUG = 'sampleui' + TITLE = 'Sample User Interface Plugin' + DESCRIPTION = 'A sample plugin which demonstrates user interface integrations' + VERSION = '1.0' + + SETTINGS = { + 'ENABLE_PART_PANELS': { + 'name': _('Enable Part Panels'), + 'description': _('Enable custom panels for Part views'), + 'default': True, + 'validator': bool, + }, + 'ENABLE_PURCHASE_ORDER_PANELS': { + 'name': _('Enable Purchase Order Panels'), + 'description': _('Enable custom panels for Purchase Order views'), + 'default': False, + 'validator': bool, + }, + 'ENABLE_BROKEN_PANELS': { + 'name': _('Enable Broken Panels'), + 'description': _('Enable broken panels for testing'), + 'default': True, + 'validator': bool, + }, + 'ENABLE_DYNAMIC_PANEL': { + 'name': _('Enable Dynamic Panel'), + 'description': _('Enable dynamic panels for testing'), + 'default': True, + 'validator': bool, + }, + } + + def get_ui_panels(self, instance_type: str, instance_id: int, request, **kwargs): + """Return a list of custom panels to be injected into the UI.""" + panels = [] + + # First, add a custom panel which will appear on every type of page + # This panel will contain a simple message + + content = render_text( + """ + This is a sample panel which appears on every page. + It renders a simple string of HTML content. + +
+
Instance Details:
+
    +
  • Instance Type: {{ instance_type }}
  • +
  • Instance ID: {{ instance_id }}
  • +
+ """, + context={'instance_type': instance_type, 'instance_id': instance_id}, + ) + + panels.append({ + 'name': 'sample_panel', + 'label': 'Sample Panel', + 'content': content, + }) + + # A broken panel which tries to load a non-existent JS file + if self.get_setting('ENABLE_BROKEN_PANElS'): + panels.append({ + 'name': 'broken_panel', + 'label': 'Broken Panel', + 'source': '/this/does/not/exist.js', + }) + + # A dynamic panel which will be injected into the UI (loaded from external file) + if self.get_setting('ENABLE_DYNAMIC_PANEL'): + panels.append({ + 'name': 'dynamic_panel', + 'label': 'Dynamic Part Panel', + 'source': '/static/plugin/sample_panel.js', + 'icon': 'part', + }) + + # Next, add a custom panel which will appear on the 'part' page + # Note that this content is rendered from a template file, + # using the django templating system + if self.get_setting('ENABLE_PART_PANELS') and instance_type == 'part': + try: + part = Part.objects.get(pk=instance_id) + except (Part.DoesNotExist, ValueError): + part = None + + # Note: This panel will *only* be available if the part is active + if part and part.active: + content = render_template( + self, 'uidemo/custom_part_panel.html', context={'part': part} + ) + + panels.append({ + 'name': 'part_panel', + 'label': 'Part Panel', + 'content': content, + }) + + # Next, add a custom panel which will appear on the 'purchaseorder' page + if ( + self.get_setting('ENABLE_PURCHASE_ORDER_PANELS') + and instance_type == 'purchaseorder' + ): + panels.append({ + 'name': 'purchase_order_panel', + 'label': 'Purchase Order Panel', + 'content': 'This is a custom panel which appears on the Purchase Order view page.', + }) + + return panels diff --git a/src/backend/InvenTree/plugin/samples/static/plugin/sample_panel.js b/src/backend/InvenTree/plugin/samples/static/plugin/sample_panel.js new file mode 100644 index 0000000000..c0a0f5d1f4 --- /dev/null +++ b/src/backend/InvenTree/plugin/samples/static/plugin/sample_panel.js @@ -0,0 +1,47 @@ +/** + * A sample panel plugin for InvenTree. + * + * This plugin file is dynamically loaded, + * as specified in the plugin/samples/integration/user_interface_sample.py + * + * It provides a simple example of how panels can be dynamically rendered, + * as well as dynamically hidden, based on the provided context. + */ + +export function renderPanel(target, context) { + + if (!target) { + console.error("No target provided to renderPanel"); + return; + } + + target.innerHTML = ` +

Dynamic Panel Content

+ +

This panel has been dynamically rendered by the plugin system.

+

It can be hidden or displayed based on the provided context.

+ +
+
Context:
+ +
    +
  • Username: ${context.user.username()}
  • +
  • Is Staff: ${context.user.isStaff() ? "YES": "NO"}
  • +
  • Model Type: ${context.model}
  • +
  • Instance ID: ${context.id}
  • + `; + +} + + +// Dynamically hide the panel based on the provided context +export function isPanelHidden(context) { + + // Hide the panel if the user is not staff + if (!context?.user?.isStaff()) { + return true; + } + + // Only display for active parts + return context.model != 'part' || !context.instance || !context.instance.active; +} diff --git a/src/backend/InvenTree/plugin/serializers.py b/src/backend/InvenTree/plugin/serializers.py index eec4cd0420..787c9ad2b4 100644 --- a/src/backend/InvenTree/plugin/serializers.py +++ b/src/backend/InvenTree/plugin/serializers.py @@ -301,3 +301,46 @@ class PluginRelationSerializer(serializers.PrimaryKeyRelatedField): def to_representation(self, value): """Return the 'key' of the PluginConfig object.""" return value.key + + +class PluginPanelSerializer(serializers.Serializer): + """Serializer for a plugin panel.""" + + class Meta: + """Meta for serializer.""" + + fields = [ + 'plugin', + 'name', + 'label', + # Following fields are optional + 'icon', + 'content', + 'source', + ] + + # Required fields + plugin = serializers.CharField( + label=_('Plugin Key'), required=True, allow_blank=False + ) + + name = serializers.CharField( + label=_('Panel Name'), required=True, allow_blank=False + ) + + label = serializers.CharField( + label=_('Panel Title'), required=True, allow_blank=False + ) + + # Optional fields + icon = serializers.CharField( + label=_('Panel Icon'), required=False, allow_blank=True + ) + + content = serializers.CharField( + label=_('Panel Content (HTML)'), required=False, allow_blank=True + ) + + source = serializers.CharField( + label=_('Panel Source (javascript)'), required=False, allow_blank=True + ) diff --git a/src/backend/InvenTree/plugin/staticfiles.py b/src/backend/InvenTree/plugin/staticfiles.py index f75f5ba755..2d4821f662 100644 --- a/src/backend/InvenTree/plugin/staticfiles.py +++ b/src/backend/InvenTree/plugin/staticfiles.py @@ -32,6 +32,8 @@ def clear_static_dir(path, recursive=True): # Finally, delete the directory itself to remove orphan folders when uninstalling a plugin staticfiles_storage.delete(path) + logger.info('Cleared static directory: %s', path) + def collect_plugins_static_files(): """Copy static files from all installed plugins into the static directory.""" @@ -43,6 +45,26 @@ def collect_plugins_static_files(): copy_plugin_static_files(slug, check_reload=False) +def clear_plugins_static_files(): + """Clear out static files for plugins which are no longer active.""" + installed_plugins = set(registry.plugins.keys()) + + path = 'plugins/' + + # Check that the directory actually exists + if not staticfiles_storage.exists(path): + return + + # Get all static files in the 'plugins' static directory + dirs, _files = staticfiles_storage.listdir('plugins/') + + for d in dirs: + # Check if the directory is a plugin directory + if d not in installed_plugins: + # Clear out the static files for this plugin + clear_static_dir(f'plugins/{d}/', recursive=True) + + def copy_plugin_static_files(slug, check_reload=True): """Copy static files for the specified plugin.""" if check_reload: @@ -93,3 +115,8 @@ def copy_plugin_static_files(slug, check_reload=True): copied += 1 logger.info("Copied %s static files for plugin '%s'.", copied, slug) + + +def clear_plugin_static_files(slug: str, recursive: bool = True): + """Clear static files for the specified plugin.""" + clear_static_dir(f'plugins/{slug}/', recursive=recursive) diff --git a/src/backend/InvenTree/templates/InvenTree/settings/barcode.html b/src/backend/InvenTree/templates/InvenTree/settings/barcode.html index 8da99c0a9a..e8b24065ad 100644 --- a/src/backend/InvenTree/templates/InvenTree/settings/barcode.html +++ b/src/backend/InvenTree/templates/InvenTree/settings/barcode.html @@ -17,6 +17,8 @@ {% include "InvenTree/settings/setting.html" with key="BARCODE_WEBCAM_SUPPORT" icon="fa-video" %} {% include "InvenTree/settings/setting.html" with key="BARCODE_SHOW_TEXT" icon="fa-closed-captioning" %} {% include "InvenTree/settings/setting.html" with key="BARCODE_GENERATION_PLUGIN" icon="fa-qrcode" %} + {% include "InvenTree/settings/setting.html" with key="BARCODE_STORE_RESULTS" icon="fa-qrcode" %} + {% include "InvenTree/settings/setting.html" with key="BARCODE_RESULTS_MAX_NUM" icon="fa-qrcode" %} diff --git a/src/backend/InvenTree/templates/js/translated/purchase_order.js b/src/backend/InvenTree/templates/js/translated/purchase_order.js index d99223256c..4604181e84 100644 --- a/src/backend/InvenTree/templates/js/translated/purchase_order.js +++ b/src/backend/InvenTree/templates/js/translated/purchase_order.js @@ -98,7 +98,8 @@ function purchaseOrderFields(options={}) { return fields; } - } + }, + disabled: !!options.duplicate_order, }, supplier_reference: {}, project_code: { @@ -155,35 +156,13 @@ function purchaseOrderFields(options={}) { // Add fields for order duplication (only if required) if (options.duplicate_order) { - fields.duplicate_order = { + fields.duplicate__order_id = { value: options.duplicate_order, - group: 'duplicate', - required: 'true', - type: 'related field', - model: 'purchaseorder', - filters: { - supplier_detail: true, - }, - api_url: '{% url "api-po-list" %}', - label: '{% trans "Purchase Order" %}', - help_text: '{% trans "Select purchase order to duplicate" %}', + hidden: true, }; - fields.duplicate_line_items = { - value: true, - group: 'duplicate', - type: 'boolean', - label: '{% trans "Duplicate Line Items" %}', - help_text: '{% trans "Duplicate all line items from the selected order" %}', - }; - - fields.duplicate_extra_lines = { - value: true, - group: 'duplicate', - type: 'boolean', - label: '{% trans "Duplicate Extra Lines" %}', - help_text: '{% trans "Duplicate extra line items from the selected order" %}', - }; + fields.duplicate__copy_lines = {}; + fields.duplicate__copy_extra_lines = {}; } if (!global_settings.PROJECT_CODES_ENABLED) { diff --git a/src/backend/InvenTree/users/models.py b/src/backend/InvenTree/users/models.py index 9f34b06319..d4c54b5853 100644 --- a/src/backend/InvenTree/users/models.py +++ b/src/backend/InvenTree/users/models.py @@ -241,6 +241,7 @@ class RuleSet(models.Model): 'plugin_pluginconfig', 'plugin_pluginsetting', 'plugin_notificationusersetting', + 'common_barcodescanresult', 'common_newsfeedentry', 'taggit_tag', 'taggit_taggeditem', diff --git a/src/frontend/.linguirc b/src/frontend/.linguirc index f767f22641..edc5a37fd4 100644 --- a/src/frontend/.linguirc +++ b/src/frontend/.linguirc @@ -19,6 +19,7 @@ "it", "ja", "ko", + "lt", "lv", "nl", "no", diff --git a/src/frontend/package.json b/src/frontend/package.json index ef170e12f3..1f04b13f69 100644 --- a/src/frontend/package.json +++ b/src/frontend/package.json @@ -11,7 +11,7 @@ "compile": "lingui compile --typescript" }, "dependencies": { - "@codemirror/autocomplete": "^6.18.0", + "@codemirror/autocomplete": "^6.18.1", "@codemirror/lang-liquid": "^6.2.1", "@codemirror/language": "^6.10.2", "@codemirror/lint": "^6.8.1", @@ -37,11 +37,11 @@ "@mantine/notifications": "^7.12.2", "@mantine/spotlight": "^7.12.2", "@mantine/vanilla-extract": "^7.12.2", - "@sentry/react": "^8.29.0", - "@tabler/icons-react": "^3.15.0", - "@tanstack/react-query": "^5.55.4", - "@uiw/codemirror-theme-vscode": "^4.23.1", - "@uiw/react-codemirror": "^4.23.1", + "@sentry/react": "^8.30.0", + "@tabler/icons-react": "^3.17.0", + "@tanstack/react-query": "^5.56.2", + "@uiw/codemirror-theme-vscode": "^4.23.2", + "@uiw/react-codemirror": "^4.23.2", "@uiw/react-split": "^5.9.3", "@vanilla-extract/css": "^1.15.5", "axios": "^1.7.7", @@ -49,7 +49,7 @@ "codemirror": "^6.0.1", "dayjs": "^1.11.13", "easymde": "^2.18.0", - "embla-carousel-react": "^8.2.1", + "embla-carousel-react": "^8.3.0", "fuse.js": "^7.0.0", "html5-qrcode": "^2.3.8", "mantine-datatable": "^7.12.4", @@ -71,13 +71,13 @@ "@babel/core": "^7.25.2", "@babel/preset-react": "^7.24.7", "@babel/preset-typescript": "^7.24.7", - "@codecov/vite-plugin": "^1.0.0", + "@codecov/vite-plugin": "^1.1.0", "@lingui/cli": "^4.11.4", "@lingui/macro": "^4.11.4", - "@playwright/test": "^1.47.0", - "@types/node": "^22.5.4", + "@playwright/test": "^1.47.1", + "@types/node": "^22.5.5", "@types/qrcode": "^1.5.5", - "@types/react": "^18.3.5", + "@types/react": "^18.3.6", "@types/react-dom": "^18.3.0", "@types/react-grid-layout": "^1.3.5", "@types/react-router-dom": "^5.3.3", @@ -87,8 +87,8 @@ "babel-plugin-macros": "^3.1.0", "nyc": "^17.0.0", "rollup-plugin-license": "^3.5.2", - "typescript": "^5.5.4", - "vite": "^5.4.3", + "typescript": "^5.6.2", + "vite": "^5.4.6", "vite-plugin-babel-macros": "^1.0.6", "vite-plugin-istanbul": "^6.0.2" } diff --git a/src/frontend/playwright.config.ts b/src/frontend/playwright.config.ts index 2a48cd0288..f42af97995 100644 --- a/src/frontend/playwright.config.ts +++ b/src/frontend/playwright.config.ts @@ -38,7 +38,8 @@ export default defineConfig({ { command: 'invoke dev.server -a 127.0.0.1:8000', env: { - INVENTREE_DEBUG: 'True' + INVENTREE_DEBUG: 'True', + INVENTREE_PLUGINS_ENABLED: 'True' }, url: 'http://127.0.0.1:8000/api/', reuseExistingServer: !process.env.CI, diff --git a/src/frontend/src/components/Boundary.tsx b/src/frontend/src/components/Boundary.tsx index 1ad6529883..126b9b76fb 100644 --- a/src/frontend/src/components/Boundary.tsx +++ b/src/frontend/src/components/Boundary.tsx @@ -4,7 +4,7 @@ import { ErrorBoundary, FallbackRender } from '@sentry/react'; import { IconExclamationCircle } from '@tabler/icons-react'; import { ReactNode, useCallback } from 'react'; -function DefaultFallback({ title }: { title: String }): ReactNode { +function DefaultFallback({ title }: Readonly<{ title: string }>): ReactNode { return ( ): ReactNode { const onError = useCallback( (error: unknown, componentStack: string | undefined, eventId: string) => { console.error(`Error rendering component: ${label}`); diff --git a/src/frontend/src/components/DashboardItemProxy.tsx b/src/frontend/src/components/DashboardItemProxy.tsx index d0ed0015c8..b2a99089ee 100644 --- a/src/frontend/src/components/DashboardItemProxy.tsx +++ b/src/frontend/src/components/DashboardItemProxy.tsx @@ -14,13 +14,13 @@ export function DashboardItemProxy({ url, params, autoupdate = true -}: { +}: Readonly<{ id: string; text: string; url: ApiEndpoints; params: any; autoupdate: boolean; -}) { +}>) { function fetchData() { return api .get(`${apiUrl(url)}?search=&offset=0&limit=25`, { params: params }) diff --git a/src/frontend/src/components/buttons/AdminButton.tsx b/src/frontend/src/components/buttons/AdminButton.tsx index 0b59e0be9e..cccf7c6c48 100644 --- a/src/frontend/src/components/buttons/AdminButton.tsx +++ b/src/frontend/src/components/buttons/AdminButton.tsx @@ -22,7 +22,7 @@ export type AdminButtonProps = { * - The user has "superuser" role * - The user has at least read rights for the selected item */ -export default function AdminButton(props: AdminButtonProps) { +export default function AdminButton(props: Readonly) { const user = useUserState(); const enabled: boolean = useMemo(() => { diff --git a/src/frontend/src/components/buttons/ButtonMenu.tsx b/src/frontend/src/components/buttons/ButtonMenu.tsx index 0bf2a36df7..be9bef9904 100644 --- a/src/frontend/src/components/buttons/ButtonMenu.tsx +++ b/src/frontend/src/components/buttons/ButtonMenu.tsx @@ -9,12 +9,12 @@ export function ButtonMenu({ actions, tooltip = '', label = '' -}: { +}: Readonly<{ icon: any; actions: React.ReactNode[]; label?: string; tooltip?: string; -}) { +}>) { return ( diff --git a/src/frontend/src/components/buttons/CopyButton.tsx b/src/frontend/src/components/buttons/CopyButton.tsx index c63ec29630..6f2c733ec9 100644 --- a/src/frontend/src/components/buttons/CopyButton.tsx +++ b/src/frontend/src/components/buttons/CopyButton.tsx @@ -3,6 +3,7 @@ import { ActionIcon, Button, CopyButton as MantineCopyButton, + MantineSize, Text, Tooltip } from '@mantine/core'; @@ -11,11 +12,15 @@ import { InvenTreeIcon } from '../../functions/icons'; export function CopyButton({ value, - label -}: { + label, + content, + size +}: Readonly<{ value: any; - label?: JSX.Element; -}) { + label?: string; + content?: JSX.Element; + size?: MantineSize; +}>) { const ButtonComponent = label ? Button : ActionIcon; return ( @@ -26,15 +31,19 @@ export function CopyButton({ color={copied ? 'teal' : 'gray'} onClick={copy} variant="transparent" - size="sm" + size={size ?? 'sm'} > {copied ? ( ) : ( )} - - {label && {label}} + {content} + {label && ( + + {label} + + )} )} diff --git a/src/frontend/src/components/buttons/EditButton.tsx b/src/frontend/src/components/buttons/EditButton.tsx index a64aa41cc9..39c7211405 100644 --- a/src/frontend/src/components/buttons/EditButton.tsx +++ b/src/frontend/src/components/buttons/EditButton.tsx @@ -6,12 +6,12 @@ export function EditButton({ editing, disabled, saveIcon -}: { +}: Readonly<{ setEditing: (value?: React.SetStateAction | undefined) => void; editing: boolean; disabled?: boolean; saveIcon?: JSX.Element; -}) { +}>) { saveIcon = saveIcon || ; return ( void; -}) { +}>) { if (hidden) { return null; } diff --git a/src/frontend/src/components/buttons/RemoveRowButton.tsx b/src/frontend/src/components/buttons/RemoveRowButton.tsx index f46a928cfc..ebdcca60c1 100644 --- a/src/frontend/src/components/buttons/RemoveRowButton.tsx +++ b/src/frontend/src/components/buttons/RemoveRowButton.tsx @@ -6,10 +6,10 @@ import { ActionButton } from './ActionButton'; export default function RemoveRowButton({ onClick, tooltip = t`Remove this row` -}: { +}: Readonly<{ onClick: () => void; tooltip?: string; -}) { +}>) { return ( }; -export function SsoButton({ provider }: { provider: Provider }) { +export function SsoButton({ provider }: Readonly<{ provider: Provider }>) { function login() { // set preferred provider api diff --git a/src/frontend/src/components/buttons/YesNoButton.tsx b/src/frontend/src/components/buttons/YesNoButton.tsx index 0997bd8ef6..2678607470 100644 --- a/src/frontend/src/components/buttons/YesNoButton.tsx +++ b/src/frontend/src/components/buttons/YesNoButton.tsx @@ -7,14 +7,14 @@ export function PassFailButton({ value, passText, failText -}: { +}: Readonly<{ value: any; passText?: string; failText?: string; -}) { +}>) { const v = isTrue(value); - const pass = passText || t`Pass`; - const fail = failText || t`Fail`; + const pass = passText ?? t`Pass`; + const fail = failText ?? t`Fail`; return ( ) { return ; } -export function YesNoUndefinedButton({ value }: { value?: boolean }) { +export function YesNoUndefinedButton({ value }: Readonly<{ value?: boolean }>) { if (value === undefined) { return ; } else { diff --git a/src/frontend/src/components/details/Details.tsx b/src/frontend/src/components/details/Details.tsx index b266bd47e1..dc3bf96150 100644 --- a/src/frontend/src/components/details/Details.tsx +++ b/src/frontend/src/components/details/Details.tsx @@ -96,7 +96,10 @@ type FieldProps = { * Badge shows username, full name, or group name depending on server settings. * Badge appends icon to describe type of Owner */ -function NameBadge({ pk, type }: { pk: string | number; type: BadgeType }) { +function NameBadge({ + pk, + type +}: Readonly<{ pk: string | number; type: BadgeType }>) { const { data } = useQuery({ queryKey: ['badge', type, pk], queryFn: async () => { @@ -331,17 +334,17 @@ function StatusValue(props: Readonly) { ); } -function CopyField({ value }: { value: string }) { +function CopyField({ value }: Readonly<{ value: string }>) { return ; } export function DetailsTableField({ item, field -}: { +}: Readonly<{ item: any; field: DetailsField; -}) { +}>) { function getFieldType(type: string) { switch (type) { case 'text': @@ -394,11 +397,11 @@ export function DetailsTable({ item, fields, title -}: { +}: Readonly<{ item: any; fields: DetailsField[]; title?: string; -}) { +}>) { return ( diff --git a/src/frontend/src/components/details/DetailsImage.tsx b/src/frontend/src/components/details/DetailsImage.tsx index f380997b9e..6b5999af6f 100644 --- a/src/frontend/src/components/details/DetailsImage.tsx +++ b/src/frontend/src/components/details/DetailsImage.tsx @@ -81,10 +81,10 @@ const removeModal = (apiPath: string, setImage: (image: string) => void) => function UploadModal({ apiPath, setImage -}: { +}: Readonly<{ apiPath: string; setImage: (image: string) => void; -}) { +}>) { const [currentFile, setCurrentFile] = useState(null); let uploading = false; @@ -96,7 +96,7 @@ function UploadModal({ Drag and drop to upload - + Click to select file(s) @@ -131,7 +131,7 @@ function UploadModal({ {file.name} - + {size.toFixed(2)} MB @@ -246,14 +246,14 @@ function ImageActionButtons({ hasImage, pk, setImage -}: { +}: Readonly<{ actions?: DetailImageButtonProps; visible: boolean; apiPath: string; hasImage: boolean; pk: string; setImage: (image: string) => void; -}) { +}>) { return ( <> {visible && ( diff --git a/src/frontend/src/components/editors/NotesEditor.tsx b/src/frontend/src/components/editors/NotesEditor.tsx index e7f02c3d89..5cd3382795 100644 --- a/src/frontend/src/components/editors/NotesEditor.tsx +++ b/src/frontend/src/components/editors/NotesEditor.tsx @@ -1,6 +1,4 @@ -// import SimpleMDE from "react-simplemde-editor"; import { t } from '@lingui/macro'; -import { useMantineColorScheme } from '@mantine/core'; import { notifications } from '@mantine/notifications'; import { useQuery } from '@tanstack/react-query'; import EasyMDE, { default as SimpleMde } from 'easymde'; @@ -60,13 +58,11 @@ export default function NotesEditor({ modelType, modelId, editable -}: { +}: Readonly<{ modelType: ModelType; modelId: number; editable?: boolean; -}) { - const { colorScheme } = useMantineColorScheme(); - +}>) { // In addition to the editable prop, we also need to check if the user has "enabled" editing const [editing, setEditing] = useState(false); diff --git a/src/frontend/src/components/errors/ClientError.tsx b/src/frontend/src/components/errors/ClientError.tsx index 85811ac736..67869b7231 100644 --- a/src/frontend/src/components/errors/ClientError.tsx +++ b/src/frontend/src/components/errors/ClientError.tsx @@ -5,7 +5,7 @@ import NotAuthenticated from './NotAuthenticated'; import NotFound from './NotFound'; import PermissionDenied from './PermissionDenied'; -export default function ClientError({ status }: { status?: number }) { +export default function ClientError({ status }: Readonly<{ status?: number }>) { switch (status) { case 401: return ; diff --git a/src/frontend/src/components/errors/GenericErrorPage.tsx b/src/frontend/src/components/errors/GenericErrorPage.tsx index 0e712e0bb0..128f487955 100644 --- a/src/frontend/src/components/errors/GenericErrorPage.tsx +++ b/src/frontend/src/components/errors/GenericErrorPage.tsx @@ -19,13 +19,13 @@ export default function ErrorPage({ title, message, status -}: { +}: Readonly<{ title: string; message: string; status?: number; redirectMessage?: string; redirectTarget?: string; -}) { +}>) { const navigate = useNavigate(); return ( diff --git a/src/frontend/src/components/errors/ServerError.tsx b/src/frontend/src/components/errors/ServerError.tsx index 4539645563..4d0aa0b39b 100644 --- a/src/frontend/src/components/errors/ServerError.tsx +++ b/src/frontend/src/components/errors/ServerError.tsx @@ -2,7 +2,7 @@ import { t } from '@lingui/macro'; import GenericErrorPage from './GenericErrorPage'; -export default function ServerError({ status }: { status?: number }) { +export default function ServerError({ status }: Readonly<{ status?: number }>) { return ( ) { const props = useMemo( () => ({ ..._props, @@ -197,11 +197,11 @@ export function ApiForm({ id, props, optionsLoading -}: { +}: Readonly<{ id: string; props: ApiFormProps; optionsLoading: boolean; -}) { +}>) { const navigate = useNavigate(); const [fields, setFields] = useState( @@ -649,10 +649,10 @@ export function ApiForm({ export function CreateApiForm({ id, props -}: { +}: Readonly<{ id?: string; props: ApiFormProps; -}) { +}>) { const createProps = useMemo( () => ({ ...props, @@ -667,10 +667,10 @@ export function CreateApiForm({ export function EditApiForm({ id, props -}: { +}: Readonly<{ id?: string; props: ApiFormProps; -}) { +}>) { const editProps = useMemo( () => ({ ...props, @@ -687,10 +687,10 @@ export function EditApiForm({ export function DeleteApiForm({ id, props -}: { +}: Readonly<{ id?: string; props: ApiFormProps; -}) { +}>) { const deleteProps = useMemo( () => ({ ...props, diff --git a/src/frontend/src/components/forms/AuthenticationForm.tsx b/src/frontend/src/components/forms/AuthenticationForm.tsx index b469ea8e27..5f61a60eb0 100644 --- a/src/frontend/src/components/forms/AuthenticationForm.tsx +++ b/src/frontend/src/components/forms/AuthenticationForm.tsx @@ -118,7 +118,7 @@ export function AuthenticationForm() { navigate('/reset-password')} > @@ -143,7 +143,7 @@ export function AuthenticationForm() { setMode.toggle()} > @@ -278,10 +278,10 @@ export function RegistrationForm() { export function ModeSelector({ loginMode, setMode -}: { +}: Readonly<{ loginMode: boolean; setMode: any; -}) { +}>) { const [auth_settings] = useServerApiState((state) => [state.auth_settings]); const registration_enabled = auth_settings?.registration_enabled || @@ -297,7 +297,7 @@ export function ModeSelector({ setMode.close()} > @@ -308,7 +308,7 @@ export function ModeSelector({ setMode.open()} > diff --git a/src/frontend/src/components/forms/HostOptionsForm.tsx b/src/frontend/src/components/forms/HostOptionsForm.tsx index 15f8368256..dddb592b83 100644 --- a/src/frontend/src/components/forms/HostOptionsForm.tsx +++ b/src/frontend/src/components/forms/HostOptionsForm.tsx @@ -17,10 +17,10 @@ import { HostList } from '../../states/states'; export function HostOptionsForm({ data, saveOptions -}: { +}: Readonly<{ data: HostList; saveOptions: (newData: HostList) => void; -}) { +}>) { const form = useForm({ initialValues: data }); function deleteItem(key: string) { const newData = form.values; diff --git a/src/frontend/src/components/forms/InstanceOptions.tsx b/src/frontend/src/components/forms/InstanceOptions.tsx index 475cc30fd4..65616aa1c8 100644 --- a/src/frontend/src/components/forms/InstanceOptions.tsx +++ b/src/frontend/src/components/forms/InstanceOptions.tsx @@ -13,11 +13,11 @@ export function InstanceOptions({ hostKey, ChangeHost, setHostEdit -}: { +}: Readonly<{ hostKey: string; ChangeHost: (newHost: string | null) => void; setHostEdit: () => void; -}) { +}>) { const [HostListEdit, setHostListEdit] = useToggle([false, true] as const); const [setHost, setHostList, hostList] = useLocalState((state) => [ state.setHost, @@ -85,10 +85,10 @@ export function InstanceOptions({ function ServerInfo({ hostList, hostKey -}: { +}: Readonly<{ hostList: HostList; hostKey: string; -}) { +}>) { const [server] = useServerApiState((state) => [state.server]); return ( diff --git a/src/frontend/src/components/forms/StandaloneField.tsx b/src/frontend/src/components/forms/StandaloneField.tsx index b9f7345a56..73f6299ed1 100644 --- a/src/frontend/src/components/forms/StandaloneField.tsx +++ b/src/frontend/src/components/forms/StandaloneField.tsx @@ -9,13 +9,13 @@ export function StandaloneField({ defaultValue, hideLabels, error -}: { +}: Readonly<{ fieldDefinition: ApiFormFieldType; fieldName?: string; defaultValue?: any; hideLabels?: boolean; error?: string; -}) { +}>) { // Field must have a defined name const name = useMemo(() => fieldName ?? 'field', [fieldName]); diff --git a/src/frontend/src/components/forms/fields/ApiFormField.tsx b/src/frontend/src/components/forms/fields/ApiFormField.tsx index 86539ce64c..2567b7055b 100644 --- a/src/frontend/src/components/forms/fields/ApiFormField.tsx +++ b/src/frontend/src/components/forms/fields/ApiFormField.tsx @@ -105,14 +105,14 @@ export function ApiFormField({ hideLabels, url, setFields -}: { +}: Readonly<{ fieldName: string; definition: ApiFormFieldType; control: Control; hideLabels?: boolean; url?: string; setFields?: React.Dispatch>; -}) { +}>) { const fieldId = useId(); const controller = useController({ name: fieldName, diff --git a/src/frontend/src/components/forms/fields/ChoiceField.tsx b/src/frontend/src/components/forms/fields/ChoiceField.tsx index 10e860aedd..fcf6f21917 100644 --- a/src/frontend/src/components/forms/fields/ChoiceField.tsx +++ b/src/frontend/src/components/forms/fields/ChoiceField.tsx @@ -1,6 +1,6 @@ import { Select } from '@mantine/core'; import { useId } from '@mantine/hooks'; -import { useCallback, useEffect, useMemo } from 'react'; +import { useCallback, useMemo } from 'react'; import { FieldValues, UseControllerReturn } from 'react-hook-form'; import { ApiFormFieldType } from './ApiFormField'; @@ -12,11 +12,11 @@ export function ChoiceField({ controller, definition, fieldName -}: { +}: Readonly<{ controller: UseControllerReturn; definition: ApiFormFieldType; fieldName: string; -}) { +}>) { const fieldId = useId(); const { diff --git a/src/frontend/src/components/forms/fields/DateField.tsx b/src/frontend/src/components/forms/fields/DateField.tsx index 47e0ce2072..3bf10b1e04 100644 --- a/src/frontend/src/components/forms/fields/DateField.tsx +++ b/src/frontend/src/components/forms/fields/DateField.tsx @@ -11,10 +11,10 @@ dayjs.extend(customParseFormat); export default function DateField({ controller, definition -}: { +}: Readonly<{ controller: UseControllerReturn; definition: ApiFormFieldType; -}) { +}>) { const fieldId = useId(); const { diff --git a/src/frontend/src/components/forms/fields/DependentField.tsx b/src/frontend/src/components/forms/fields/DependentField.tsx index 216275d6b7..0b44ba7ccd 100644 --- a/src/frontend/src/components/forms/fields/DependentField.tsx +++ b/src/frontend/src/components/forms/fields/DependentField.tsx @@ -18,13 +18,13 @@ export function DependentField({ definition, url, setFields -}: { +}: Readonly<{ control: Control; definition: ApiFormFieldType; fieldName: string; url?: string; setFields?: React.Dispatch>; -}) { +}>) { const { watch, resetField } = useFormContext(); const mappedFieldNames = useMemo( diff --git a/src/frontend/src/components/forms/fields/NestedObjectField.tsx b/src/frontend/src/components/forms/fields/NestedObjectField.tsx index 77a8693c69..bbecd056aa 100644 --- a/src/frontend/src/components/forms/fields/NestedObjectField.tsx +++ b/src/frontend/src/components/forms/fields/NestedObjectField.tsx @@ -13,13 +13,13 @@ export function NestedObjectField({ definition, url, setFields -}: { +}: Readonly<{ control: Control; definition: ApiFormFieldType; fieldName: string; url?: string; setFields?: React.Dispatch>; -}) { +}>) { return ( diff --git a/src/frontend/src/components/forms/fields/RelatedModelField.tsx b/src/frontend/src/components/forms/fields/RelatedModelField.tsx index 9a74cc4032..c2d1d7caee 100644 --- a/src/frontend/src/components/forms/fields/RelatedModelField.tsx +++ b/src/frontend/src/components/forms/fields/RelatedModelField.tsx @@ -28,12 +28,12 @@ export function RelatedModelField({ fieldName, definition, limit = 10 -}: { +}: Readonly<{ controller: UseControllerReturn; definition: ApiFormFieldType; fieldName: string; limit?: number; -}) { +}>) { const fieldId = useId(); const { field, diff --git a/src/frontend/src/components/forms/fields/TableField.tsx b/src/frontend/src/components/forms/fields/TableField.tsx index 333ed40cac..83841eef31 100644 --- a/src/frontend/src/components/forms/fields/TableField.tsx +++ b/src/frontend/src/components/forms/fields/TableField.tsx @@ -20,16 +20,16 @@ export function TableField({ definition, fieldName, control -}: { +}: Readonly<{ definition: ApiFormFieldType; fieldName: string; control: UseControllerReturn; -}) { +}>) { const { field, fieldState: { error } } = control; - const { value, ref } = field; + const { value } = field; const onRowFieldChange = (idx: number, key: string, value: any) => { const val = field.value; diff --git a/src/frontend/src/components/forms/fields/TextField.tsx b/src/frontend/src/components/forms/fields/TextField.tsx index 0445d4feaa..1f5cabf13e 100644 --- a/src/frontend/src/components/forms/fields/TextField.tsx +++ b/src/frontend/src/components/forms/fields/TextField.tsx @@ -14,12 +14,12 @@ export default function TextField({ fieldName, definition, onChange -}: { +}: Readonly<{ controller: UseControllerReturn; definition: any; fieldName: string; onChange: (value: any) => void; -}) { +}>) { const fieldId = useId(); const { field, diff --git a/src/frontend/src/components/images/Thumbnail.tsx b/src/frontend/src/components/images/Thumbnail.tsx index 63e2414122..148fcc09f9 100644 --- a/src/frontend/src/components/images/Thumbnail.tsx +++ b/src/frontend/src/components/images/Thumbnail.tsx @@ -1,5 +1,5 @@ import { t } from '@lingui/macro'; -import { Anchor, Group, Skeleton, Text } from '@mantine/core'; +import { Anchor, Group } from '@mantine/core'; import { ReactNode, useMemo } from 'react'; import { ApiImage } from './ApiImage'; @@ -14,14 +14,14 @@ export function Thumbnail({ link, text, align -}: { - src?: string | undefined; +}: Readonly<{ + src?: string; alt?: string; size?: number; text?: ReactNode; align?: string; link?: string; -}) { +}>) { const backup_image = '/static/img/blank_image.png'; const inner = useMemo(() => { diff --git a/src/frontend/src/components/importer/ImportDataSelector.tsx b/src/frontend/src/components/importer/ImportDataSelector.tsx index 83c210e3f3..1cdd1ccf97 100644 --- a/src/frontend/src/components/importer/ImportDataSelector.tsx +++ b/src/frontend/src/components/importer/ImportDataSelector.tsx @@ -38,12 +38,12 @@ function ImporterDataCell({ column, row, onEdit -}: { +}: Readonly<{ session: ImportSessionState; column: any; row: any; onEdit?: () => void; -}) { +}>) { const onRowEdit = useCallback( (event: any) => { cancelEvent(event); @@ -128,9 +128,9 @@ function ImporterDataCell({ export default function ImporterDataSelector({ session -}: { +}: Readonly<{ session: ImportSessionState; -}) { +}>) { const table = useTable('dataimporter'); const [selectedFieldNames, setSelectedFieldNames] = useState([]); @@ -377,6 +377,7 @@ export default function ImporterDataSelector({ return [ } color="green" diff --git a/src/frontend/src/components/importer/ImporterColumnSelector.tsx b/src/frontend/src/components/importer/ImporterColumnSelector.tsx index 0fe47653db..1e903009f0 100644 --- a/src/frontend/src/components/importer/ImporterColumnSelector.tsx +++ b/src/frontend/src/components/importer/ImporterColumnSelector.tsx @@ -20,7 +20,10 @@ import { apiUrl } from '../../states/ApiState'; import { StandaloneField } from '../forms/StandaloneField'; import { ApiFormFieldType } from '../forms/fields/ApiFormField'; -function ImporterColumn({ column, options }: { column: any; options: any[] }) { +function ImporterColumn({ + column, + options +}: Readonly<{ column: any; options: any[] }>) { const [errorMessage, setErrorMessage] = useState(''); const [selectedColumn, setSelectedColumn] = useState( @@ -122,11 +125,11 @@ function ImporterColumnTableRow({ session, column, options -}: { +}: Readonly<{ session: ImportSessionState; column: any; options: any; -}) { +}>) { return ( @@ -156,9 +159,9 @@ function ImporterColumnTableRow({ export default function ImporterColumnSelector({ session -}: { +}: Readonly<{ session: ImportSessionState; -}) { +}>) { const [errorMessage, setErrorMessage] = useState(''); const acceptMapping = useCallback(() => { @@ -221,6 +224,7 @@ export default function ImporterColumnSelector({ {session.columnMappings.map((column: any) => { return ( ) { /* TODO: Enhance this with: * - Custom icons * - Loading indicators for "background" states @@ -54,11 +56,11 @@ export default function ImporterDrawer({ sessionId, opened, onClose -}: { +}: Readonly<{ sessionId: number; opened: boolean; onClose: () => void; -}) { +}>) { const session = useImportSession({ sessionId: sessionId }); const importSessionStatus = useStatusCodes({ diff --git a/src/frontend/src/components/importer/ImporterImportProgress.tsx b/src/frontend/src/components/importer/ImporterImportProgress.tsx index 34231e9d9f..01820ec675 100644 --- a/src/frontend/src/components/importer/ImporterImportProgress.tsx +++ b/src/frontend/src/components/importer/ImporterImportProgress.tsx @@ -10,9 +10,9 @@ import { StylishText } from '../items/StylishText'; export default function ImporterImportProgress({ session -}: { +}: Readonly<{ session: ImportSessionState; -}) { +}>) { const importSessionStatus = useStatusCodes({ modelType: ModelType.importsession }); diff --git a/src/frontend/src/components/items/ActionDropdown.tsx b/src/frontend/src/components/items/ActionDropdown.tsx index aca665ffd6..e8e730af90 100644 --- a/src/frontend/src/components/items/ActionDropdown.tsx +++ b/src/frontend/src/components/items/ActionDropdown.tsx @@ -127,11 +127,11 @@ export function OptionsActionDropdown({ actions = [], tooltip = t`Options`, hidden = false -}: { +}: Readonly<{ actions: ActionDropdownItem[]; tooltip?: string; hidden?: boolean; -}) { +}>) { return ( } diff --git a/src/frontend/src/components/items/AttachmentLink.tsx b/src/frontend/src/components/items/AttachmentLink.tsx index 1561e3d788..b76e610b75 100644 --- a/src/frontend/src/components/items/AttachmentLink.tsx +++ b/src/frontend/src/components/items/AttachmentLink.tsx @@ -55,10 +55,10 @@ export function attachmentIcon(attachment: string): ReactNode { export function AttachmentLink({ attachment, external -}: { +}: Readonly<{ attachment: string; external?: boolean; -}): ReactNode { +}>): ReactNode { let text = external ? attachment : attachment.split('/').pop(); const host = useLocalState((s) => s.host); diff --git a/src/frontend/src/components/items/DashboardItem.tsx b/src/frontend/src/components/items/DashboardItem.tsx index a9fb2a5d3c..e1a3225da4 100644 --- a/src/frontend/src/components/items/DashboardItem.tsx +++ b/src/frontend/src/components/items/DashboardItem.tsx @@ -11,16 +11,16 @@ export function StatisticItem({ id, data, isLoading -}: { +}: Readonly<{ id: string; data: StatisticItemProps; isLoading: boolean; -}) { +}>) { return ( - + {data.title} diff --git a/src/frontend/src/components/items/DocTooltip.tsx b/src/frontend/src/components/items/DocTooltip.tsx index 113ca234d6..99558659b1 100644 --- a/src/frontend/src/components/items/DocTooltip.tsx +++ b/src/frontend/src/components/items/DocTooltip.tsx @@ -50,12 +50,12 @@ function ConstBody({ detail, docchildren, link -}: { +}: Readonly<{ text: string | JSX.Element; detail?: string | JSX.Element; docchildren?: React.ReactNode; link?: string; -}) { +}>) { const [height, setHeight] = useState(0); const ref = useRef(null); @@ -78,7 +78,7 @@ function ConstBody({
    {detail && ( - + {detail} )} diff --git a/src/frontend/src/components/items/DocumentationLinks.tsx b/src/frontend/src/components/items/DocumentationLinks.tsx index 5d652db40a..bf72a8962b 100644 --- a/src/frontend/src/components/items/DocumentationLinks.tsx +++ b/src/frontend/src/components/items/DocumentationLinks.tsx @@ -26,9 +26,9 @@ export type DocumentationLinkItem = export function DocumentationLinks({ links -}: { +}: Readonly<{ links: DocumentationLinkItem[]; -}) { +}>) { const DocumentationLinkRenderer = ({ link }: { diff --git a/src/frontend/src/components/items/ErrorItem.tsx b/src/frontend/src/components/items/ErrorItem.tsx index fb82b1b342..b4e1813010 100644 --- a/src/frontend/src/components/items/ErrorItem.tsx +++ b/src/frontend/src/components/items/ErrorItem.tsx @@ -1,6 +1,9 @@ import { Trans } from '@lingui/macro'; -export function ErrorItem({ id, error }: { id: string; error?: any }) { +export function ErrorItem({ + id, + error +}: Readonly<{ id: string; error?: any }>) { const error_message = error?.message || error?.toString() || ( Unknown error ); diff --git a/src/frontend/src/components/items/GettingStartedCarousel.tsx b/src/frontend/src/components/items/GettingStartedCarousel.tsx index b34e6093b4..1d98fcb25a 100644 --- a/src/frontend/src/components/items/GettingStartedCarousel.tsx +++ b/src/frontend/src/components/items/GettingStartedCarousel.tsx @@ -33,9 +33,9 @@ function StartedCard({ export function GettingStartedCarousel({ items -}: { +}: Readonly<{ items: DocumentationLinkItem[]; -}) { +}>) { const slides = items.map((item) => ( diff --git a/src/frontend/src/components/items/InfoItem.tsx b/src/frontend/src/components/items/InfoItem.tsx index e3c06789e7..85621c42f4 100644 --- a/src/frontend/src/components/items/InfoItem.tsx +++ b/src/frontend/src/components/items/InfoItem.tsx @@ -12,14 +12,14 @@ export function InfoItem({ value, link, detailDrawerLink -}: { +}: Readonly<{ name: string; children?: React.ReactNode; type?: 'text' | 'boolean' | 'code'; value?: any; link?: To; detailDrawerLink?: boolean; -}) { +}>) { function renderComponent() { if (value === undefined) return null; diff --git a/src/frontend/src/components/items/LanguageSelect.tsx b/src/frontend/src/components/items/LanguageSelect.tsx index 9c38ec9484..55b2d613c3 100644 --- a/src/frontend/src/components/items/LanguageSelect.tsx +++ b/src/frontend/src/components/items/LanguageSelect.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from 'react'; import { getSupportedLanguages } from '../../contexts/LanguageContext'; import { useLocalState } from '../../states/LocalState'; -export function LanguageSelect({ width = 80 }: { width?: number }) { +export function LanguageSelect({ width = 80 }: Readonly<{ width?: number }>) { const [value, setValue] = useState(null); const [locale, setLanguage] = useLocalState((state) => [ state.language, diff --git a/src/frontend/src/components/items/MenuLinks.tsx b/src/frontend/src/components/items/MenuLinks.tsx index ad50300869..4f80dd403f 100644 --- a/src/frontend/src/components/items/MenuLinks.tsx +++ b/src/frontend/src/components/items/MenuLinks.tsx @@ -23,10 +23,10 @@ export type menuItemsCollection = { function ConditionalDocTooltip({ item, children -}: { +}: Readonly<{ item: MenuLinkItem; children: React.ReactNode; -}) { +}>) { if (item.doctext !== undefined) { return ( ) { const filteredLinks = links.filter( (item) => !highlighted || item.highlight === true ); diff --git a/src/frontend/src/components/items/QRCode.tsx b/src/frontend/src/components/items/QRCode.tsx index 627dcfa459..ade6ebac89 100644 --- a/src/frontend/src/components/items/QRCode.tsx +++ b/src/frontend/src/components/items/QRCode.tsx @@ -11,7 +11,6 @@ import { Stack, Text } from '@mantine/core'; -import { useDisclosure } from '@mantine/hooks'; import { modals } from '@mantine/modals'; import { useQuery } from '@tanstack/react-query'; import QR from 'qrcode'; @@ -76,7 +75,7 @@ export const InvenTreeQRCode = ({ const { data } = useQuery({ queryKey: ['qr-code', mdl_prop.model, mdl_prop.pk], queryFn: async () => { - const res = await api.post(apiUrl(ApiEndpoints.generate_barcode), { + const res = await api.post(apiUrl(ApiEndpoints.barcode_generate), { model: mdl_prop.model, pk: mdl_prop.pk }); @@ -143,7 +142,6 @@ export const InvenTreeQRCode = ({ export const QRCodeLink = ({ mdl_prop }: { mdl_prop: QrCodeType }) => { const [barcode, setBarcode] = useState(''); - const [isScanning, toggleIsScanning] = useDisclosure(false); function linkBarcode(value?: string) { api diff --git a/src/frontend/src/components/items/StylishText.tsx b/src/frontend/src/components/items/StylishText.tsx index 774a6fdde9..cae6245c8a 100644 --- a/src/frontend/src/components/items/StylishText.tsx +++ b/src/frontend/src/components/items/StylishText.tsx @@ -5,10 +5,10 @@ import * as classes from '../../main.css'; export function StylishText({ children, size = 'md' -}: { +}: Readonly<{ children: JSX.Element | string; size?: string; -}) { +}>) { return ( {children} diff --git a/src/frontend/src/components/modals/AboutInvenTreeModal.tsx b/src/frontend/src/components/modals/AboutInvenTreeModal.tsx index aecbcb60ad..8581506fac 100644 --- a/src/frontend/src/components/modals/AboutInvenTreeModal.tsx +++ b/src/frontend/src/components/modals/AboutInvenTreeModal.tsx @@ -1,4 +1,4 @@ -import { Trans } from '@lingui/macro'; +import { Trans, t } from '@lingui/macro'; import { Anchor, Badge, @@ -178,10 +178,7 @@ export function AboutInvenTreeModal({ - Copy version information} - /> +