diff --git a/InvenTree/build/templates/build/notes.html b/InvenTree/build/templates/build/notes.html index a7a4677c96..ede15651ab 100644 --- a/InvenTree/build/templates/build/notes.html +++ b/InvenTree/build/templates/build/notes.html @@ -10,6 +10,9 @@ {% block heading %} {% trans "Build Notes" %} +{% if roles.build.change and not editing %} + +{% endif %} {% endblock %} {% block details %} @@ -20,14 +23,13 @@ {{ form }}
- + {{ form.media }} {% else %} - {{ build.notes | markdownify }} {% endif %} diff --git a/InvenTree/company/templates/company/notes.html b/InvenTree/company/templates/company/notes.html index 63fab7ca32..580fa84d52 100644 --- a/InvenTree/company/templates/company/notes.html +++ b/InvenTree/company/templates/company/notes.html @@ -9,6 +9,9 @@ {% block heading %} {% trans "Company Notes" %} +{% if not editing %} + +{% endif %} {% endblock %} {% block details %} @@ -18,7 +21,7 @@ {{ form }}
- + @@ -26,7 +29,6 @@ {% else %} - {{ company.notes | markdownify }} {% endif %} diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 2d395f256f..d3ad0b4a69 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-09 11:11+0100\n" -"PO-Revision-Date: 2021-03-11 12:00+0100\n" +"POT-Creation-Date: 2021-03-28 15:13+0000\n" +"PO-Revision-Date: 2021-03-28 17:47+0200\n" "Last-Translator: Andreas Kaiser , Matthias MAIR\n" "Language-Team: C \n" "Language: de\n" @@ -57,7 +57,7 @@ msgstr "Thema anwenden" msgid "Select Category" msgstr "Kategorie auswählen" -#: InvenTree/helpers.py:361 order/models.py:232 order/models.py:331 +#: InvenTree/helpers.py:361 order/models.py:242 order/models.py:341 #: stock/views.py:1762 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" @@ -88,7 +88,9 @@ msgstr "Keine Seriennummern gefunden" #: InvenTree/helpers.py:412 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" -msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen" +msgstr "" +"Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) " +"übereinstimmen" #: InvenTree/models.py:60 msgid "Select file to attach" @@ -105,7 +107,7 @@ msgid "User" msgstr "Benutzer" #: InvenTree/models.py:106 label/models.py:101 part/models.py:685 -#: part/templates/part/params.html:27 report/models.py:162 +#: part/templates/part/params.html:27 report/models.py:179 #: templates/js/part.js:109 msgid "Name" msgstr "Name" @@ -171,7 +173,7 @@ msgid "Returned" msgstr "Zurückgegeben" #: InvenTree/status_codes.py:136 -#: order/templates/order/sales_order_base.html:121 +#: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "Versendet" @@ -271,7 +273,7 @@ msgstr "Treffer für Barcode gefunden" #: barcodes/api.py:153 msgid "Must provide stockitem parameter" -msgstr "" +msgstr "BestandsObjekt-Parameter muss angegeben werden" #: barcodes/api.py:160 msgid "No matching stock item found" @@ -308,7 +310,7 @@ msgstr "geplantes Bestelldatum" #: build/forms.py:39 build/models.py:224 msgid "" "Target date for build completion. Build will be overdue after this date." -msgstr "" +msgstr "Zieldatum für Bauauftrag-Fertigstellung." #: build/forms.py:44 msgid "Number of items to build" @@ -316,8 +318,8 @@ msgstr "Anzahl der zu bauenden Teile" #: build/forms.py:85 build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:91 -#: build/templates/build/detail.html:31 common/models.py:682 -#: company/forms.py:112 company/templates/company/supplier_part_pricing.html:77 +#: build/templates/build/detail.html:31 common/models.py:696 +#: company/forms.py:130 company/templates/company/supplier_part_pricing.html:77 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:193 #: order/templates/order/sales_order_detail.html:77 @@ -325,7 +327,9 @@ msgstr "Anzahl der zu bauenden Teile" #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 #: part/templates/part/sale_prices.html:85 -#: report/templates/report/inventree_build_order_base.html:117 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 #: stock/forms.py:307 stock/templates/stock/item_base.html:51 #: stock/templates/stock/item_base.html:57 @@ -391,7 +395,7 @@ msgstr "Menge der BestandsObjekt für Zuordnung auswählen" #: build/models.py:65 build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:35 #: part/templates/part/allocation.html:23 -#: report/templates/report/inventree_build_order_base.html:109 +#: report/templates/report/inventree_build_order_base.html:106 msgid "Build Order" msgstr "Bauauftrag" @@ -410,7 +414,9 @@ msgid "Build Order Reference" msgstr "Bauauftragsreferenz" #: build/models.py:127 order/templates/order/purchase_order_detail.html:188 -#: templates/js/bom.js:197 templates/js/build.js:509 templates/js/build.js:948 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 +#: templates/js/build.js:509 templates/js/build.js:948 msgid "Reference" msgstr "Referenz" @@ -420,8 +426,8 @@ msgstr "Referenz" #: company/templates/company/supplier_part_detail.html:31 label/models.py:108 #: order/templates/order/purchase_order_detail.html:168 part/models.py:709 #: part/templates/part/detail.html:54 part/templates/part/set_category.html:14 -#: report/models.py:175 -#: report/templates/report/inventree_build_order_base.html:121 +#: report/models.py:192 +#: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:208 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 #: templates/js/build.js:677 templates/js/build.js:944 @@ -446,15 +452,23 @@ msgid "BuildOrder to which this build is allocated" msgstr "Bauauftrag, zu dem dieser Bau zugwiesen ist" #: build/models.py:152 build/templates/build/auto_allocate.html:16 -#: build/templates/build/build_base.html:86 build/templates/build/detail.html:26 order/models.py:652 +#: build/templates/build/build_base.html:86 +#: build/templates/build/detail.html:26 order/models.py:662 #: order/templates/order/order_wizard/select_parts.html:30 -#: order/templates/order/purchase_order_detail.html:156 order/templates/order/receive_parts.html:19 -#: part/models.py:320 part/templates/part/part_app_base.html:7 part/templates/part/related.html:29 -#: part/templates/part/set_category.html:13 part/templates/part/subcategories.html:17 -#: report/templates/report/inventree_build_order_base.html:113 templates/InvenTree/search.html:111 -#: templates/InvenTree/search.html:194 templates/js/barcode.js:362 templates/js/bom.js:163 -#: templates/js/build.js:681 templates/js/build.js:921 templates/js/company.js:138 -#: templates/js/part.js:232 templates/js/part.js:337 templates/js/stock.js:524 templates/js/stock.js:1262 +#: order/templates/order/purchase_order_detail.html:156 +#: order/templates/order/receive_parts.html:19 part/models.py:320 +#: part/templates/part/part_app_base.html:7 part/templates/part/related.html:29 +#: part/templates/part/set_category.html:13 +#: part/templates/part/subcategories.html:17 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:90 +#: templates/InvenTree/search.html:111 templates/InvenTree/search.html:194 +#: templates/js/barcode.js:362 templates/js/bom.js:163 +#: templates/js/build.js:681 templates/js/build.js:921 +#: templates/js/company.js:138 templates/js/part.js:232 +#: templates/js/part.js:337 templates/js/stock.js:524 +#: templates/js/stock.js:1262 msgid "Part" msgstr "Teil" @@ -468,16 +482,19 @@ msgstr "Auftrag Referenz" #: build/models.py:169 msgid "SalesOrder to which this build is allocated" -msgstr "VK-Auftrag, die diesem Bau zugewiesen ist" +msgstr "Bestellung, die diesem Bau zugewiesen ist" #: build/models.py:174 msgid "Source Location" msgstr "Quell-Lagerort" #: build/models.py:178 -msgid "Select location to take stock from for this build (leave blank to take from any stock location)" +msgid "" +"Select location to take stock from for this build (leave blank to take from " +"any stock location)" msgstr "" -"Entnahme-Lagerort für diesen Bau wählen (oder leer lassen für einen beliebigen Lagerort)" +"Entnahme-Lagerort für diesen Bau wählen (oder leer lassen für einen " +"beliebigen Lagerort)" #: build/models.py:183 msgid "Destination Location" @@ -519,7 +536,7 @@ msgstr "Losnummer" msgid "Batch code for this build output" msgstr "Losnummer für dieses Endprodukt" -#: build/models.py:223 order/models.py:437 +#: build/models.py:223 order/models.py:447 msgid "Target completion date" msgstr "geplantes Fertigstellungsdatum" @@ -533,8 +550,9 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist" #: build/models.py:253 build/templates/build/detail.html:91 #: company/templates/company/supplier_part_base.html:77 -#: company/templates/company/supplier_part_detail.html:28 part/templates/part/detail.html:83 -#: part/templates/part/part_base.html:100 stock/models.py:423 stock/templates/stock/item_base.html:324 +#: company/templates/company/supplier_part_detail.html:28 +#: part/templates/part/detail.html:83 part/templates/part/part_base.html:100 +#: stock/models.py:423 stock/templates/stock/item_base.html:324 msgid "External Link" msgstr "Externer Link" @@ -542,14 +560,20 @@ msgstr "Externer Link" msgid "Link to external URL" msgstr "Link zu einer externen URL" -#: build/models.py:258 build/templates/build/navbar.html:59 company/models.py:366 -#: company/templates/company/navbar.html:59 company/templates/company/navbar.html:62 -#: order/templates/order/po_navbar.html:29 order/templates/order/po_navbar.html:32 -#: order/templates/order/purchase_order_detail.html:227 order/templates/order/so_navbar.html:33 -#: order/templates/order/so_navbar.html:36 part/models.py:869 part/templates/part/navbar.html:122 -#: report/templates/report/inventree_build_order_base.html:176 stock/forms.py:316 stock/forms.py:348 -#: stock/forms.py:376 stock/models.py:495 stock/models.py:1663 stock/templates/stock/navbar.html:57 -#: templates/js/barcode.js:37 templates/js/bom.js:329 templates/js/stock.js:128 templates/js/stock.js:667 +#: build/models.py:258 build/templates/build/navbar.html:59 +#: company/models.py:366 company/templates/company/navbar.html:59 +#: company/templates/company/navbar.html:62 +#: order/templates/order/po_navbar.html:29 +#: order/templates/order/po_navbar.html:32 +#: order/templates/order/purchase_order_detail.html:227 +#: order/templates/order/so_navbar.html:33 +#: order/templates/order/so_navbar.html:36 part/models.py:869 +#: part/templates/part/navbar.html:122 +#: report/templates/report/inventree_build_order_base.html:173 +#: stock/forms.py:316 stock/forms.py:348 stock/forms.py:376 stock/models.py:495 +#: stock/models.py:1663 stock/templates/stock/navbar.html:57 +#: templates/js/barcode.js:37 templates/js/bom.js:329 templates/js/stock.js:128 +#: templates/js/stock.js:667 msgid "Notes" msgstr "Notizen" @@ -576,6 +600,8 @@ msgstr "Endprodukt fertigstellen" #: build/models.py:993 msgid "BuildItem must be unique for build, stock_item and install_into" msgstr "" +"Bauauftrags-Objekt muss für Bauauftrag, Lager-Objekt und installiert_in " +"eindeutig sein" #: build/models.py:1015 msgid "Build item must specify a build output" @@ -590,14 +616,14 @@ msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden" #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -"Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die " -"verfügbare ({q}) Anzahl überschreiten" +"Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene " +"Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten" -#: build/models.py:1031 order/models.py:736 +#: build/models.py:1031 order/models.py:746 msgid "StockItem is over-allocated" msgstr "Zu viele BestandsObjekt zugewiesen" -#: build/models.py:1035 order/models.py:739 +#: build/models.py:1035 order/models.py:749 msgid "Allocation quantity must be greater than zero" msgstr "Reserviermenge muss größer null sein" @@ -641,7 +667,8 @@ msgstr "Neues Endprodukt anlegen" msgid "Order required parts" msgstr "benötigte Teile bestellen" -#: build/templates/build/allocate.html:31 company/templates/company/detail_part.html:31 order/views.py:791 +#: build/templates/build/allocate.html:31 +#: company/templates/company/detail_part.html:31 order/views.py:791 #: part/templates/part/category.html:127 msgid "Order Parts" msgstr "Teile bestellen" @@ -666,8 +693,9 @@ msgstr "Keine unfertigen Endprodukte verbleiben." msgid "Create a new build output using the button above" msgstr "Neues Endprodukt mit der Schaltfläche obehalb anlegen" -#: build/templates/build/attachments.html:12 build/templates/build/navbar.html:49 -#: build/templates/build/navbar.html:52 order/templates/order/po_navbar.html:26 +#: build/templates/build/attachments.html:12 +#: build/templates/build/navbar.html:49 build/templates/build/navbar.html:52 +#: order/templates/order/po_navbar.html:26 #: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:113 #: part/templates/part/navbar.html:116 stock/templates/stock/navbar.html:47 #: stock/templates/stock/navbar.html:50 @@ -679,19 +707,25 @@ msgid "Automatically Allocate Stock" msgstr "Lagerbestand automatisch zuweisen" #: build/templates/build/auto_allocate.html:10 -msgid "The following stock items will be allocated to the specified build output" -msgstr "Die folgenden BestandsObjekte werden den ausgewählten Endprodukten zugeordnet" +msgid "" +"The following stock items will be allocated to the specified build output" +msgstr "" +"Die folgenden BestandsObjekte werden den ausgewählten Endprodukten zugeordnet" -#: build/templates/build/auto_allocate.html:18 stock/forms.py:346 stock/templates/stock/item_base.html:264 -#: stock/templates/stock/stock_adjust.html:17 templates/InvenTree/search.html:244 -#: templates/js/barcode.js:363 templates/js/barcode.js:531 templates/js/build.js:434 +#: build/templates/build/auto_allocate.html:18 stock/forms.py:346 +#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/stock_adjust.html:17 +#: templates/InvenTree/search.html:244 templates/js/barcode.js:363 +#: templates/js/barcode.js:531 templates/js/build.js:434 #: templates/js/stock.js:637 msgid "Location" msgstr "Lagerort" #: build/templates/build/auto_allocate.html:37 msgid "No stock items found that can be automatically allocated to this build" -msgstr "Keine BestandsObjekt gefunden, die diesem Endprodukt automatisch zugewiesen werden können" +msgstr "" +"Keine BestandsObjekt gefunden, die diesem Endprodukt automatisch zugewiesen " +"werden können" #: build/templates/build/auto_allocate.html:39 msgid "Stock items will have to be manually allocated" @@ -705,18 +739,25 @@ msgstr "Dieser Bauauftrag ist einem Auftrag zugeordnet" msgid "This Build Order is a child of Build Order" msgstr "Dieser Bauauftrag ist einem Bauauftrag untergeordnet" -#: build/templates/build/build_base.html:37 company/templates/company/company_base.html:27 -#: company/templates/company/supplier_part_base.html:25 order/templates/order/order_base.html:26 -#: order/templates/order/sales_order_base.html:35 part/templates/part/category.html:14 -#: part/templates/part/part_base.html:28 stock/templates/stock/item_base.html:114 +#: build/templates/build/build_base.html:37 +#: company/templates/company/company_base.html:40 +#: company/templates/company/supplier_part_base.html:25 +#: order/templates/order/order_base.html:26 +#: order/templates/order/sales_order_base.html:35 +#: part/templates/part/category.html:14 part/templates/part/part_base.html:28 +#: stock/templates/stock/item_base.html:114 #: stock/templates/stock/location.html:24 msgid "Admin view" msgstr "Admin" -#: build/templates/build/build_base.html:43 build/templates/build/build_base.html:108 -#: order/templates/order/order_base.html:32 order/templates/order/order_base.html:83 -#: order/templates/order/sales_order_base.html:41 order/templates/order/sales_order_base.html:83 -#: templates/js/table_filters.js:213 templates/js/table_filters.js:232 templates/js/table_filters.js:249 +#: build/templates/build/build_base.html:43 +#: build/templates/build/build_base.html:108 +#: order/templates/order/order_base.html:32 +#: order/templates/order/order_base.html:86 +#: order/templates/order/sales_order_base.html:41 +#: order/templates/order/sales_order_base.html:86 +#: templates/js/table_filters.js:218 templates/js/table_filters.js:237 +#: templates/js/table_filters.js:254 msgid "Overdue" msgstr "Überfällig" @@ -744,22 +785,28 @@ msgstr "Bau fertigstellen" msgid "Cancel Build" msgstr "Bau abbrechen" -#: build/templates/build/build_base.html:82 build/templates/build/detail.html:11 +#: build/templates/build/build_base.html:82 +#: build/templates/build/detail.html:11 msgid "Build Details" msgstr "Bau-Status" -#: build/templates/build/build_base.html:96 build/templates/build/detail.html:59 -#: order/templates/order/receive_parts.html:24 stock/templates/stock/item_base.html:370 -#: templates/InvenTree/search.html:236 templates/js/barcode.js:119 templates/js/build.js:710 -#: templates/js/order.js:187 templates/js/order.js:285 templates/js/stock.js:624 -#: templates/js/stock.js:1198 +#: build/templates/build/build_base.html:96 +#: build/templates/build/detail.html:59 +#: order/templates/order/receive_parts.html:24 +#: stock/templates/stock/item_base.html:370 templates/InvenTree/search.html:236 +#: templates/js/barcode.js:119 templates/js/build.js:710 +#: templates/js/order.js:187 templates/js/order.js:285 +#: templates/js/stock.js:624 templates/js/stock.js:1198 msgid "Status" msgstr "Status" -#: build/templates/build/build_base.html:104 build/templates/build/detail.html:121 -#: order/templates/order/order_base.html:121 order/templates/order/sales_order_base.html:114 -#: report/templates/report/inventree_build_order_base.html:129 templates/js/build.js:723 -#: templates/js/order.js:200 templates/js/order.js:298 +#: build/templates/build/build_base.html:104 +#: build/templates/build/detail.html:121 +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:117 +#: report/templates/report/inventree_build_order_base.html:126 +#: templates/js/build.js:723 templates/js/order.js:200 +#: templates/js/order.js:298 msgid "Target Date" msgstr "Zieldatum" @@ -767,40 +814,50 @@ msgstr "Zieldatum" msgid "This build was due on" msgstr "Fertigung überfällig seit" -#: build/templates/build/build_base.html:115 build/templates/build/detail.html:64 +#: build/templates/build/build_base.html:115 +#: build/templates/build/detail.html:64 msgid "Progress" msgstr "Fortschritt" -#: build/templates/build/build_base.html:128 build/templates/build/detail.html:84 order/models.py:650 -#: order/templates/order/sales_order_base.html:9 order/templates/order/sales_order_base.html:33 -#: order/templates/order/sales_order_ship.html:25 part/templates/part/allocation.html:30 -#: report/templates/report/inventree_build_order_base.html:139 stock/templates/stock/item_base.html:258 -#: templates/js/order.js:245 +#: build/templates/build/build_base.html:128 +#: build/templates/build/detail.html:84 order/models.py:660 +#: order/templates/order/sales_order_base.html:9 +#: order/templates/order/sales_order_base.html:33 +#: order/templates/order/sales_order_ship.html:25 +#: part/templates/part/allocation.html:30 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:258 templates/js/order.js:245 msgid "Sales Order" msgstr "Auftrag" -#: build/templates/build/build_base.html:135 build/templates/build/detail.html:98 -#: report/templates/report/inventree_build_order_base.html:156 +#: build/templates/build/build_base.html:135 +#: build/templates/build/detail.html:98 +#: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "Aufgegeben von" -#: build/templates/build/build_base.html:142 build/templates/build/detail.html:105 -#: report/templates/report/inventree_build_order_base.html:162 +#: build/templates/build/build_base.html:142 +#: build/templates/build/detail.html:105 order/models.py:118 +#: order/templates/order/order_base.html:138 +#: order/templates/order/sales_order_base.html:138 +#: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "Verantwortlicher Benutzer" -#: build/templates/build/build_children.html:10 build/templates/build/navbar.html:42 +#: build/templates/build/build_children.html:10 +#: build/templates/build/navbar.html:42 msgid "Child Build Orders" msgstr "Unter-Bauaufträge" -#: build/templates/build/build_output.html:10 build/templates/build/navbar.html:35 -#: build/templates/build/navbar.html:38 +#: build/templates/build/build_output.html:10 +#: build/templates/build/navbar.html:35 build/templates/build/navbar.html:38 msgid "Build Outputs" msgstr "Endprodukte" #: build/templates/build/build_output_create.html:7 msgid "The Bill of Materials contains trackable parts" -msgstr "" +msgstr "Die Stückliste enthält verfolgbare Teile" #: build/templates/build/build_output_create.html:8 msgid "Build outputs must be generated individually." @@ -808,7 +865,8 @@ msgstr "Endprodukte müssen individuell angelegt werden." #: build/templates/build/build_output_create.html:9 msgid "Multiple build outputs will be created based on the quantity specified." -msgstr "Mehrere Endprodukte werden anhand der gegebenen Anzahl angelegt werden." +msgstr "" +"Mehrere Endprodukte werden anhand der gegebenen Anzahl angelegt werden." #: build/templates/build/build_output_create.html:15 msgid "Trackable parts can have serial numbers specified" @@ -860,7 +918,8 @@ msgstr "BestandsObjekt zur Zuordnung zum ausgewählten Endprodukt auswählen" #: build/templates/build/create_build_item.html:11 msgid "The allocated stock will be installed into the following build output:" -msgstr "Der zugeordnete Bestand wird in den folgenden Endprodukten verbaut werden:" +msgstr "" +"Der zugeordnete Bestand wird in den folgenden Endprodukten verbaut werden:" #: build/templates/build/create_build_item.html:19 msgid "No stock available for" @@ -868,7 +927,8 @@ msgstr "Kein Bestand verfügbar für" #: build/templates/build/delete_build_item.html:8 msgid "Are you sure you want to unallocate this stock?" -msgstr "Sind Sie sicher, dass sie die folgenden Bestands-Zuordnung entfernen möchten?" +msgstr "" +"Sind Sie sicher, dass sie die folgenden Bestands-Zuordnung entfernen möchten?" #: build/templates/build/delete_build_item.html:11 msgid "The selected stock will be unallocated from the build output" @@ -890,13 +950,16 @@ msgstr "Ziel" msgid "Destination location not specified" msgstr "Ziel-Lagerort nicht angegeben" -#: build/templates/build/detail.html:70 stock/templates/stock/item_base.html:282 templates/js/stock.js:632 -#: templates/js/stock.js:1205 templates/js/table_filters.js:85 templates/js/table_filters.js:174 +#: build/templates/build/detail.html:70 +#: stock/templates/stock/item_base.html:282 templates/js/stock.js:632 +#: templates/js/stock.js:1205 templates/js/table_filters.js:85 +#: templates/js/table_filters.js:179 msgid "Batch" msgstr "Los" -#: build/templates/build/detail.html:116 order/templates/order/order_base.html:108 -#: order/templates/order/sales_order_base.html:108 templates/js/build.js:718 +#: build/templates/build/detail.html:116 +#: order/templates/order/order_base.html:111 +#: order/templates/order/sales_order_base.html:111 templates/js/build.js:718 msgid "Created" msgstr "Erstellt" @@ -904,7 +967,8 @@ msgstr "Erstellt" msgid "No target date set" msgstr "Kein Ziel-Datum gesetzt" -#: build/templates/build/detail.html:132 templates/js/build.js:696 templates/js/build.js:728 +#: build/templates/build/detail.html:132 templates/js/build.js:696 +#: templates/js/build.js:728 msgid "Completed" msgstr "Fertig" @@ -924,13 +988,15 @@ msgstr "Neuer Bauauftrag" msgid "Print Build Orders" msgstr "Bauaufträge ausdrucken" -#: build/templates/build/index.html:43 order/templates/order/purchase_orders.html:22 -#: order/templates/order/sales_orders.html:22 +#: build/templates/build/index.html:43 +#: order/templates/order/purchase_orders.html:27 +#: order/templates/order/sales_orders.html:27 msgid "Display calendar view" msgstr "Kalendar Ansicht" -#: build/templates/build/index.html:46 order/templates/order/purchase_orders.html:25 -#: order/templates/order/sales_orders.html:25 +#: build/templates/build/index.html:46 +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:30 msgid "Display list view" msgstr "Listen Ansicht" @@ -938,9 +1004,10 @@ msgstr "Listen Ansicht" msgid "Build Order Details" msgstr "Bauauftrag-details" -#: build/templates/build/navbar.html:15 company/templates/company/navbar.html:15 -#: order/templates/order/po_navbar.html:14 order/templates/order/so_navbar.html:15 -#: part/templates/part/navbar.html:15 +#: build/templates/build/navbar.html:15 +#: company/templates/company/navbar.html:15 +#: order/templates/order/po_navbar.html:14 +#: order/templates/order/so_navbar.html:15 part/templates/part/navbar.html:15 msgid "Details" msgstr "Details" @@ -966,24 +1033,29 @@ msgid "Build Notes" msgstr "Bau-Bemerkungen" #: build/templates/build/notes.html:23 company/templates/company/notes.html:21 -#: order/templates/order/order_notes.html:24 order/templates/order/sales_order_notes.html:26 +#: order/templates/order/order_notes.html:24 +#: order/templates/order/sales_order_notes.html:26 #: part/templates/part/notes.html:25 stock/templates/stock/item_notes.html:23 msgid "Save" msgstr "Speichern" #: build/templates/build/notes.html:30 company/templates/company/notes.html:29 -#: order/templates/order/order_notes.html:31 order/templates/order/sales_order_notes.html:32 +#: order/templates/order/order_notes.html:31 +#: order/templates/order/sales_order_notes.html:32 #: part/templates/part/notes.html:33 stock/templates/stock/item_notes.html:29 msgid "Edit notes" msgstr "Bermerkungen bearbeiten" #: build/templates/build/unallocate.html:10 msgid "Are you sure you wish to unallocate all stock for this build?" -msgstr "Sind Sie sicher, dass sie alle BestandsObjekt von diesem Bau entfernen möchten?" +msgstr "" +"Sind Sie sicher, dass sie alle BestandsObjekt von diesem Bau entfernen " +"möchten?" #: build/templates/build/unallocate.html:12 msgid "All incomplete stock allocations will be removed from the build" -msgstr "Alle unvollständigen Bestandszuordnungen werden vom Endprodukt entfernt" +msgstr "" +"Alle unvollständigen Bestandszuordnungen werden vom Endprodukt entfernt" #: build/views.py:77 msgid "Build was cancelled" @@ -1051,7 +1123,9 @@ msgstr "Endprodukt fertigstellen" #: build/views.py:476 msgid "Quantity to complete cannot exceed build output quantity" -msgstr "Fertigzustellende Anzahl darf nicht die geplante Endprodukt-Anzahl überschreiten" +msgstr "" +"Fertigzustellende Anzahl darf nicht die geplante Endprodukt-Anzahl " +"überschreiten" #: build/views.py:482 msgid "Confirm completion of incomplete build" @@ -1093,8 +1167,8 @@ msgstr "Teil muss aktuell im Bestand sein" msgid "Stock item is over-allocated" msgstr "BestandObjekt ist zu oft zugewiesen" -#: build/views.py:851 templates/js/bom.js:230 templates/js/build.js:519 templates/js/build.js:778 -#: templates/js/build.js:961 +#: build/views.py:851 templates/js/bom.js:230 templates/js/build.js:519 +#: templates/js/build.js:778 templates/js/build.js:961 msgid "Available" msgstr "verfügbar" @@ -1114,7 +1188,8 @@ msgstr "Bauobjekt aktualisiert" msgid "Add Build Order Attachment" msgstr "Bauauftrags-Anhang hinzufügen" -#: build/views.py:1062 order/views.py:107 order/views.py:159 part/views.py:167 stock/views.py:277 +#: build/views.py:1062 order/views.py:107 order/views.py:159 part/views.py:172 +#: stock/views.py:277 msgid "Added attachment" msgstr "Anhang hinzugefügt" @@ -1152,11 +1227,11 @@ msgstr "interner Firmenname" #: common/models.py:68 msgid "Base URL" -msgstr "" +msgstr "Basis-URL" #: common/models.py:69 msgid "Base URL for server instance" -msgstr "Basis-Url für dieses Instanz" +msgstr "Basis-URL für dieses Instanz" #: common/models.py:75 msgid "Default Currency" @@ -1167,293 +1242,314 @@ msgid "Default currency" msgstr "Standard-Währung" #: common/models.py:82 +msgid "Download from URL" +msgstr "Von URL herunterladen" + +#: common/models.py:83 +msgid "Allow download of remote images and files from external URL" +msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt" + +#: common/models.py:89 msgid "Barcode Support" msgstr "Bacode-Feature verwenden" -#: common/models.py:83 +#: common/models.py:90 msgid "Enable barcode scanner support" msgstr "Barcode-Scanner Unterstützung" -#: common/models.py:89 +#: common/models.py:96 msgid "IPN Regex" -msgstr "" +msgstr "IPN Regex" -#: common/models.py:90 +#: common/models.py:97 msgid "Regular expression pattern for matching Part IPN" -msgstr "" +msgstr "RegEx Muster für die Zuordnung von Teil-IPN" -#: common/models.py:94 +#: common/models.py:101 msgid "Allow Duplicate IPN" -msgstr "Mehrere Artikel mit gleicher IPN" +msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:95 +#: common/models.py:102 msgid "Allow multiple parts to share the same IPN" msgstr "Mehrere Artikel mit gleicher IPN erlaubt" -#: common/models.py:101 +#: common/models.py:108 +msgid "Allow Editing IPN" +msgstr "Ändern von IPN erlaubt" + +#: common/models.py:109 +msgid "Allow changing the IPN value while editing a part" +msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt" + +#: common/models.py:115 msgid "Copy Part BOM Data" msgstr "Teil-Stückliste kopieren" -#: common/models.py:102 +#: common/models.py:116 msgid "Copy BOM data by default when duplicating a part" msgstr "Stückliste beim Duplizieren von Teil kopieren" -#: common/models.py:108 +#: common/models.py:122 msgid "Copy Part Parameter Data" msgstr "Teil-Parameter kopieren" -#: common/models.py:109 +#: common/models.py:123 msgid "Copy parameter data by default when duplicating a part" -msgstr "" +msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:115 +#: common/models.py:129 msgid "Copy Part Test Data" msgstr "Teil-Testdaten kopieren" -#: common/models.py:116 +#: common/models.py:130 msgid "Copy test data by default when duplicating a part" -msgstr "" +msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird" -#: common/models.py:122 +#: common/models.py:136 msgid "Copy Category Parameter Templates" msgstr "Kategorie-Parametervorlage kopieren" -#: common/models.py:123 +#: common/models.py:137 msgid "Copy category parameter templates when creating a part" -msgstr "" +msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird" -#: common/models.py:129 +#: common/models.py:143 msgid "Recent Part Count" msgstr "Aktuelle Teile-Stände" -#: common/models.py:130 +#: common/models.py:144 msgid "Number of recent parts to display on index page" -msgstr "" +msgstr "Anzahl der neusten Teile auf der Startseite" -#: common/models.py:136 part/templates/part/detail.html:160 report/models.py:168 stock/forms.py:258 -#: templates/js/table_filters.js:24 templates/js/table_filters.js:283 +#: common/models.py:150 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:258 templates/js/table_filters.js:24 +#: templates/js/table_filters.js:288 msgid "Template" msgstr "Vorlage" -#: common/models.py:137 +#: common/models.py:151 msgid "Parts are templates by default" msgstr "Teile sind standardmäßig Vorlagen" -#: common/models.py:143 part/models.py:832 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:295 +#: common/models.py:157 part/models.py:832 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:300 msgid "Assembly" msgstr "Baugruppe" -#: common/models.py:144 +#: common/models.py:158 msgid "Parts can be assembled from other components by default" msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden" -#: common/models.py:150 part/models.py:838 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:299 +#: common/models.py:164 part/models.py:838 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:304 msgid "Component" msgstr "Komponente" -#: common/models.py:151 +#: common/models.py:165 msgid "Parts can be used as sub-components by default" msgstr "Teile können standardmäßig in Baugruppen benutzt werden" -#: common/models.py:157 part/models.py:849 part/templates/part/detail.html:200 +#: common/models.py:171 part/models.py:849 part/templates/part/detail.html:200 msgid "Purchaseable" msgstr "Kaufbar" -#: common/models.py:158 +#: common/models.py:172 msgid "Parts are purchaseable by default" msgstr "Artikel kaufbar als Standard" -#: common/models.py:164 part/models.py:854 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:307 +#: common/models.py:178 part/models.py:854 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:312 msgid "Salable" msgstr "Verkäuflich" -#: common/models.py:165 +#: common/models.py:179 msgid "Parts are salable by default" msgstr "Artikel verkaufbar als Standard" -#: common/models.py:171 part/models.py:844 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:311 +#: common/models.py:185 part/models.py:844 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:32 templates/js/table_filters.js:316 msgid "Trackable" msgstr "nachverfolgbar" -#: common/models.py:172 +#: common/models.py:186 msgid "Parts are trackable by default" msgstr "Artikel verfolgbar als Standard" -#: common/models.py:178 part/models.py:864 part/templates/part/detail.html:150 +#: common/models.py:192 part/models.py:864 part/templates/part/detail.html:150 #: templates/js/table_filters.js:28 msgid "Virtual" msgstr "Virtuell" -#: common/models.py:179 +#: common/models.py:193 msgid "Parts are virtual by default" msgstr "Teile sind grundsätzlich virtuell" -#: common/models.py:185 +#: common/models.py:199 msgid "Show Quantity in Forms" msgstr "zeige Bestand in Eingabemasken" -#: common/models.py:186 +#: common/models.py:200 msgid "Display available part quantity in some forms" msgstr "zeige den verfügbaren Bestand in einigen Eingabemasken" -#: common/models.py:192 +#: common/models.py:206 msgid "Debug Mode" -msgstr "" +msgstr "Entwickler-Modus" -#: common/models.py:193 +#: common/models.py:207 msgid "Generate reports in debug mode (HTML output)" -msgstr "" +msgstr "Bercihte ich Entwickler-Modus generieren (als HTML)" -#: common/models.py:199 +#: common/models.py:213 msgid "Page Size" msgstr "Seitengröße" -#: common/models.py:200 +#: common/models.py:214 msgid "Default page size for PDF reports" msgstr "Standardseitenformat für PDF Report" -#: common/models.py:210 +#: common/models.py:224 msgid "Test Reports" msgstr "Test-Berichte" -#: common/models.py:211 +#: common/models.py:225 msgid "Enable generation of test reports" msgstr "Erstellung von Test-Berichten aktivieren" -#: common/models.py:217 +#: common/models.py:231 msgid "Stock Expiry" msgstr "Bestands-Ablauf" -#: common/models.py:218 +#: common/models.py:232 msgid "Enable stock expiry functionality" msgstr "Bestands-Ablauf ermöglichen" -#: common/models.py:224 +#: common/models.py:238 msgid "Sell Expired Stock" msgstr "Abgelaufenen Bestand verkaufen" -#: common/models.py:225 +#: common/models.py:239 msgid "Allow sale of expired stock" -msgstr "Verkauf von abgelaufenem Bestand erlauben" +msgstr "Verkauf von abgelaufenem Bestand erlaubt" -#: common/models.py:231 +#: common/models.py:245 msgid "Stock Stale Time" msgstr "Bestands-Stehzeit" -#: common/models.py:232 +#: common/models.py:246 msgid "Number of days stock items are considered stale before expiring" -msgstr "Anzahl an Tagen an denen Bestandsobjekte als abgestanden markiert werden bevor sie ablaufen" +msgstr "" +"Anzahl an Tagen an denen Bestandsobjekte als abgestanden markiert werden " +"bevor sie ablaufen" -#: common/models.py:234 part/templates/part/detail.html:121 +#: common/models.py:248 part/templates/part/detail.html:121 msgid "days" msgstr "Tage" -#: common/models.py:239 +#: common/models.py:253 msgid "Build Expired Stock" msgstr "Abgelaufenen Bestand verbauen" -#: common/models.py:240 +#: common/models.py:254 msgid "Allow building with expired stock" -msgstr "Verbauen von abgelaufenen Bestand erlauben" +msgstr "Verbauen von abgelaufenen Bestand erlaubt" -#: common/models.py:246 +#: common/models.py:260 msgid "Stock Ownership Control" -msgstr "" +msgstr "Bestands-Eigentümerkontrolle" -#: common/models.py:247 +#: common/models.py:261 msgid "Enable ownership control over stock locations and items" msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren" -#: common/models.py:253 +#: common/models.py:267 msgid "Group by Part" msgstr "Gruppieren nach Teil" -#: common/models.py:254 +#: common/models.py:268 msgid "Group stock items by part reference in table views" msgstr "BestandsObjekte in Tabellen anhand von Teil-Referenz gruppieren" -#: common/models.py:260 +#: common/models.py:274 msgid "Recent Stock Count" msgstr "aktueller Bestand" -#: common/models.py:261 +#: common/models.py:275 msgid "Number of recent stock items to display on index page" msgstr "Anzahl der aktuellen BestandsObjekte auf der Startseite" -#: common/models.py:267 +#: common/models.py:281 msgid "Build Order Reference Prefix" msgstr "Bauauftrag-Referenz Präfix" -#: common/models.py:268 +#: common/models.py:282 msgid "Prefix value for build order reference" msgstr "Präfix für Bauauftrag-Referenz" -#: common/models.py:273 +#: common/models.py:287 msgid "Build Order Reference Regex" msgstr "Bauauftrag-Referenz RegEx" -#: common/models.py:274 +#: common/models.py:288 msgid "Regular expression pattern for matching build order reference" msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen" -#: common/models.py:278 +#: common/models.py:292 msgid "Sales Order Reference Prefix" msgstr "Auftrags-Referenz Präfix" -#: common/models.py:279 +#: common/models.py:293 msgid "Prefix value for sales order reference" msgstr "Präfix für Auftrags-Referenz" -#: common/models.py:284 +#: common/models.py:298 msgid "Purchase Order Reference Prefix" msgstr "Bestellungs-Referenz Präfix" -#: common/models.py:285 +#: common/models.py:299 msgid "Prefix value for purchase order reference" msgstr "Präfix für Bestellungs-Referenz" -#: common/models.py:508 +#: common/models.py:522 msgid "Settings key (must be unique - case insensitive" -msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)" +msgstr "" +"Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird " +"nicht beachtet)" -#: common/models.py:510 +#: common/models.py:524 msgid "Settings value" msgstr "Einstellungs-Wert" -#: common/models.py:545 +#: common/models.py:559 msgid "Must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:568 +#: common/models.py:582 msgid "Value must be a boolean value" msgstr "Wahrheitswert erforderlich" -#: common/models.py:579 +#: common/models.py:593 msgid "Value must be an integer value" msgstr "Nur Ganzzahl eingeben" -#: common/models.py:602 +#: common/models.py:616 msgid "Key string must be unique" msgstr "Schlüsseltext muss eindeutig sein" -#: common/models.py:683 company/forms.py:113 +#: common/models.py:697 company/forms.py:131 msgid "Price break quantity" msgstr "Preisstaffelungs Anzahl" -#: common/models.py:691 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:705 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "Preis" -#: common/models.py:692 +#: common/models.py:706 msgid "Unit price at specified quantity" msgstr "Stückpreis für die angegebene Anzahl" -#: common/models.py:715 +#: common/models.py:729 msgid "Default" msgstr "Standard" @@ -1477,11 +1573,19 @@ msgstr "Angegebener Wert muss ein Wahrheitswert sein" msgid "Default currency used for this company" msgstr "Standard-Währung für diese Firma" -#: company/forms.py:80 +#: company/forms.py:75 part/forms.py:46 +msgid "URL" +msgstr "URL" + +#: company/forms.py:76 part/forms.py:47 +msgid "Image URL" +msgstr "Bild-URL" + +#: company/forms.py:98 msgid "Single Price" msgstr "Einzelpreis" -#: company/forms.py:82 +#: company/forms.py:100 msgid "Single quantity price" msgstr "Einzelpreis" @@ -1493,7 +1597,7 @@ msgstr "Firmenbeschreibung" msgid "Description of the company" msgstr "Firmenbeschreibung" -#: company/models.py:100 company/templates/company/company_base.html:57 +#: company/models.py:100 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:31 templates/js/company.js:60 msgid "Website" msgstr "Website" @@ -1502,7 +1606,7 @@ msgstr "Website" msgid "Company website URL" msgstr "Firmenwebsite Adresse/URL" -#: company/models.py:103 company/templates/company/company_base.html:64 +#: company/models.py:103 company/templates/company/company_base.html:77 msgid "Address" msgstr "Adresse" @@ -1518,7 +1622,7 @@ msgstr "Kontakt-Tel." msgid "Contact phone number" msgstr "Kontakt-Telefon" -#: company/models.py:111 company/templates/company/company_base.html:78 +#: company/models.py:111 company/templates/company/company_base.html:91 msgid "Email" msgstr "Email" @@ -1526,7 +1630,7 @@ msgstr "Email" msgid "Contact email address" msgstr "Kontakt-Email" -#: company/models.py:114 company/templates/company/company_base.html:85 +#: company/models.py:114 company/templates/company/company_base.html:98 msgid "Contact" msgstr "Kontakt" @@ -1554,7 +1658,8 @@ msgstr "Produziert diese Firma Teile?" msgid "Currency" msgstr "Währung" -#: company/models.py:313 stock/models.py:370 stock/templates/stock/item_base.html:214 +#: company/models.py:313 stock/models.py:370 +#: stock/templates/stock/item_base.html:214 msgid "Base Part" msgstr "Basisteil" @@ -1564,10 +1669,11 @@ msgstr "Teil auswählen" #: company/models.py:323 company/templates/company/detail.html:60 #: company/templates/company/supplier_part_base.html:83 -#: company/templates/company/supplier_part_detail.html:25 order/templates/order/order_base.html:89 +#: company/templates/company/supplier_part_detail.html:25 +#: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170 -#: stock/templates/stock/item_base.html:331 templates/js/company.js:48 templates/js/company.js:164 -#: templates/js/order.js:170 +#: stock/templates/stock/item_base.html:331 templates/js/company.js:48 +#: templates/js/company.js:164 templates/js/order.js:170 msgid "Supplier" msgstr "Zulieferer" @@ -1587,8 +1693,8 @@ msgstr "Lagerbestandseinheit (SKU) des Zulieferers" #: company/models.py:340 company/templates/company/detail.html:55 #: company/templates/company/supplier_part_base.html:93 -#: company/templates/company/supplier_part_detail.html:34 part/bom.py:172 templates/js/company.js:44 -#: templates/js/company.js:188 +#: company/templates/company/supplier_part_detail.html:34 part/bom.py:172 +#: templates/js/company.js:44 templates/js/company.js:188 msgid "Manufacturer" msgstr "Hersteller" @@ -1598,7 +1704,8 @@ msgstr "Hersteller auswählen" #: company/models.py:347 company/templates/company/supplier_part_base.html:99 #: company/templates/company/supplier_part_detail.html:35 -#: order/templates/order/purchase_order_detail.html:183 part/bom.py:173 templates/js/company.js:204 +#: order/templates/order/purchase_order_detail.html:183 part/bom.py:173 +#: templates/js/company.js:204 msgid "MPN" msgstr "MPN" @@ -1606,7 +1713,8 @@ msgstr "MPN" msgid "Manufacturer part number" msgstr "Hersteller-Teilenummer" -#: company/models.py:353 part/models.py:742 report/templates/report/inventree_build_order_base.html:168 +#: company/models.py:353 part/models.py:742 +#: report/templates/report/inventree_build_order_base.html:165 #: templates/js/company.js:208 templates/js/part.js:430 msgid "Link" msgstr "Link" @@ -1621,6 +1729,8 @@ msgstr "Zuliefererbeschreibung des Teils" #: company/models.py:365 company/templates/company/supplier_part_base.html:113 #: company/templates/company/supplier_part_detail.html:38 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "Notiz" @@ -1632,22 +1742,35 @@ msgstr "Mindestpreis" msgid "Part packaging" msgstr "Teile-Packaging" -#: company/templates/company/assigned_stock.html:10 company/templates/company/navbar.html:51 +#: company/templates/company/assigned_stock.html:10 +#: company/templates/company/navbar.html:51 #: company/templates/company/navbar.html:54 templates/js/build.js:411 msgid "Assigned Stock" msgstr "Zugeordneter Bestand" -#: company/templates/company/company_base.html:7 company/templates/company/company_base.html:22 +#: company/templates/company/company_base.html:9 +#: company/templates/company/company_base.html:35 #: templates/InvenTree/search.html:288 templates/js/company.js:33 msgid "Company" msgstr "Firma" -#: company/templates/company/company_base.html:51 company/templates/company/detail.html:10 +#: company/templates/company/company_base.html:25 +#: part/templates/part/part_thumb.html:21 +msgid "Upload new image" +msgstr "Neues Bild hochladen" + +#: company/templates/company/company_base.html:27 +#: part/templates/part/part_thumb.html:23 +msgid "Download image from URL" +msgstr "Bild von URL herunterladen" + +#: company/templates/company/company_base.html:64 +#: company/templates/company/detail.html:10 #: company/templates/company/navbar.html:12 msgid "Company Details" msgstr "Firmendetails" -#: company/templates/company/company_base.html:71 +#: company/templates/company/company_base.html:84 msgid "Phone" msgstr "Telefon" @@ -1663,31 +1786,36 @@ msgstr "Keine Website angegeben" msgid "Uses default currency" msgstr "verwendet Standard-Währung" -#: company/templates/company/detail.html:65 order/templates/order/sales_order_base.html:89 -#: stock/models.py:412 stock/models.py:413 stock/templates/stock/item_base.html:241 +#: company/templates/company/detail.html:65 +#: order/templates/order/sales_order_base.html:92 stock/models.py:412 +#: stock/models.py:413 stock/templates/stock/item_base.html:241 #: templates/js/company.js:40 templates/js/order.js:267 msgid "Customer" msgstr "Kunde" -#: company/templates/company/detail_part.html:10 templates/InvenTree/search.html:148 +#: company/templates/company/detail_part.html:10 +#: templates/InvenTree/search.html:148 msgid "Supplier Parts" msgstr "Zulieferer-Teile" -#: company/templates/company/detail_part.html:20 order/templates/order/purchase_order_detail.html:75 +#: company/templates/company/detail_part.html:20 +#: order/templates/order/purchase_order_detail.html:75 msgid "Create new supplier part" msgstr "Neues Zulieferer-Teil anlegen" -#: company/templates/company/detail_part.html:21 order/templates/order/purchase_order_detail.html:74 +#: company/templates/company/detail_part.html:21 +#: order/templates/order/purchase_order_detail.html:74 #: part/templates/part/supplier.html:17 templates/js/stock.js:1082 msgid "New Supplier Part" msgstr "Neues Zulieferer-Teil" -#: company/templates/company/detail_part.html:26 part/templates/part/category.html:122 -#: part/templates/part/supplier.html:20 +#: company/templates/company/detail_part.html:26 +#: part/templates/part/category.html:122 part/templates/part/supplier.html:20 msgid "Options" msgstr "Optionen" -#: company/templates/company/detail_part.html:31 part/templates/part/category.html:127 +#: company/templates/company/detail_part.html:31 +#: part/templates/part/category.html:127 msgid "Order parts" msgstr "Teile bestellen" @@ -1699,8 +1827,9 @@ msgstr "Teile löschen" msgid "Delete Parts" msgstr "Teile löschen" -#: company/templates/company/detail_part.html:66 part/templates/part/bom.html:159 -#: part/templates/part/category.html:118 templates/js/stock.js:1076 +#: company/templates/company/detail_part.html:66 +#: part/templates/part/bom.html:159 part/templates/part/category.html:118 +#: templates/js/stock.js:1076 msgid "New Part" msgstr "Neues Teil" @@ -1708,21 +1837,23 @@ msgstr "Neues Teil" msgid "Create new Part" msgstr "Neues Teil hinzufügen" -#: company/templates/company/detail_part.html:72 company/views.py:56 -#: order/templates/order/purchase_orders.html:164 part/templates/part/supplier.html:50 +#: company/templates/company/detail_part.html:72 company/views.py:62 +#: order/templates/order/purchase_orders.html:182 +#: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "Neuer Zulieferer" -#: company/templates/company/detail_part.html:73 company/views.py:195 -#: order/templates/order/purchase_orders.html:165 +#: company/templates/company/detail_part.html:73 company/views.py:279 +#: order/templates/order/purchase_orders.html:183 msgid "Create new Supplier" msgstr "Neuen Zulieferer anlegen" -#: company/templates/company/detail_part.html:78 company/views.py:63 part/templates/part/supplier.html:56 +#: company/templates/company/detail_part.html:78 company/views.py:69 +#: part/templates/part/supplier.html:56 msgid "New Manufacturer" msgstr "Neuer Hersteller" -#: company/templates/company/detail_part.html:79 company/views.py:198 +#: company/templates/company/detail_part.html:79 company/views.py:282 msgid "Create new Manufacturer" msgstr "Neuen Hersteller anlegen" @@ -1730,7 +1861,8 @@ msgstr "Neuen Hersteller anlegen" msgid "Supplier Stock" msgstr "Zulieferer-Bestand" -#: company/templates/company/detail_stock.html:37 company/templates/company/supplier_part_stock.html:34 +#: company/templates/company/detail_stock.html:37 +#: company/templates/company/supplier_part_stock.html:34 #: part/templates/part/category.html:114 part/templates/part/category.html:128 #: part/templates/part/stock.html:54 msgid "Export" @@ -1744,45 +1876,59 @@ msgstr "Zulieferer-Liste" msgid "Supplied Parts" msgstr "Zulieferer-Teile" -#: company/templates/company/navbar.html:23 order/templates/order/receive_parts.html:14 part/models.py:321 +#: company/templates/company/navbar.html:23 +#: order/templates/order/receive_parts.html:14 part/models.py:321 #: part/templates/part/cat_link.html:7 part/templates/part/category.html:95 -#: part/templates/part/category_navbar.html:11 part/templates/part/category_navbar.html:14 -#: part/templates/part/category_partlist.html:10 templates/InvenTree/index.html:96 -#: templates/InvenTree/search.html:113 templates/InvenTree/settings/tabs.html:25 templates/navbar.html:23 +#: part/templates/part/category_navbar.html:11 +#: part/templates/part/category_navbar.html:14 +#: part/templates/part/category_partlist.html:10 +#: templates/InvenTree/index.html:96 templates/InvenTree/search.html:113 +#: templates/InvenTree/settings/tabs.html:25 templates/navbar.html:23 #: templates/stats.html:35 templates/stats.html:44 users/models.py:33 msgid "Parts" msgstr "Teile" #: company/templates/company/navbar.html:27 part/templates/part/navbar.html:33 -#: stock/templates/stock/location.html:100 stock/templates/stock/location.html:115 -#: templates/InvenTree/search.html:182 templates/stats.html:48 templates/stats.html:57 users/models.py:35 +#: stock/templates/stock/location.html:100 +#: stock/templates/stock/location.html:115 templates/InvenTree/search.html:182 +#: templates/stats.html:48 templates/stats.html:57 users/models.py:35 msgid "Stock Items" msgstr "BestandsObjekte" -#: company/templates/company/navbar.html:30 company/templates/company/part_navbar.html:14 +#: company/templates/company/navbar.html:30 +#: company/templates/company/part_navbar.html:14 #: part/templates/part/navbar.html:36 stock/templates/stock/loc_link.html:7 -#: stock/templates/stock/location.html:29 stock/templates/stock/stock_app_base.html:9 +#: stock/templates/stock/location.html:29 +#: stock/templates/stock/stock_app_base.html:9 #: templates/InvenTree/index.html:127 templates/InvenTree/search.html:180 -#: templates/InvenTree/search.html:216 templates/InvenTree/settings/tabs.html:28 templates/js/part.js:172 +#: templates/InvenTree/search.html:216 +#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:172 #: templates/js/part.js:397 templates/js/stock.js:559 templates/navbar.html:26 msgid "Stock" msgstr "Lagerbestand" -#: company/templates/company/navbar.html:36 company/templates/company/navbar.html:45 -#: company/templates/company/navbar.html:48 company/templates/company/sales_orders.html:11 -#: order/templates/order/sales_orders.html:8 order/templates/order/sales_orders.html:13 +#: company/templates/company/navbar.html:36 +#: company/templates/company/navbar.html:45 +#: company/templates/company/navbar.html:48 +#: company/templates/company/sales_orders.html:11 +#: order/templates/order/sales_orders.html:8 +#: order/templates/order/sales_orders.html:13 #: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95 #: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:226 -#: templates/InvenTree/search.html:330 templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46 +#: templates/InvenTree/search.html:330 +#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46 #: users/models.py:38 msgid "Sales Orders" msgstr "Aufträge" -#: company/templates/company/navbar.html:39 company/templates/company/purchase_orders.html:10 -#: order/templates/order/purchase_orders.html:8 order/templates/order/purchase_orders.html:13 +#: company/templates/company/navbar.html:39 +#: company/templates/company/purchase_orders.html:10 +#: order/templates/order/purchase_orders.html:8 +#: order/templates/order/purchase_orders.html:13 #: part/templates/part/navbar.html:78 part/templates/part/navbar.html:81 #: part/templates/part/orders.html:10 templates/InvenTree/index.html:203 -#: templates/InvenTree/search.html:300 templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37 +#: templates/InvenTree/search.html:300 +#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37 #: users/models.py:37 msgid "Purchase Orders" msgstr "Bestellungen" @@ -1791,11 +1937,13 @@ msgstr "Bestellungen" msgid "Company Notes" msgstr "Firmenbemerkungen" -#: company/templates/company/part_navbar.html:11 company/templates/company/supplier_part_stock.html:10 +#: company/templates/company/part_navbar.html:11 +#: company/templates/company/supplier_part_stock.html:10 msgid "Supplier Part Stock" msgstr "Zulieferer-Bestand" -#: company/templates/company/part_navbar.html:18 company/templates/company/supplier_part_orders.html:10 +#: company/templates/company/part_navbar.html:18 +#: company/templates/company/supplier_part_orders.html:10 msgid "Supplier Part Orders" msgstr "Zulieferer-Bestellungen" @@ -1813,21 +1961,26 @@ msgstr "Bepreisung" #: company/templates/company/partdelete.html:5 msgid "Are you sure you want to delete the following Supplier Parts?" -msgstr "Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?" +msgstr "" +"Sind Sie sicher, dass sie die folgenden Zulieferer-Teile löschen möchten?" -#: company/templates/company/purchase_orders.html:18 order/templates/order/purchase_orders.html:19 +#: company/templates/company/purchase_orders.html:18 +#: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "Neue Bestellung anlegen" -#: company/templates/company/purchase_orders.html:19 order/templates/order/purchase_orders.html:20 +#: company/templates/company/purchase_orders.html:19 +#: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "Neue Bestellung" -#: company/templates/company/sales_orders.html:19 order/templates/order/sales_orders.html:19 +#: company/templates/company/sales_orders.html:19 +#: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "Neuen Auftrag anlegen" -#: company/templates/company/sales_orders.html:20 order/templates/order/sales_orders.html:20 +#: company/templates/company/sales_orders.html:20 +#: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "Neuer Auftrag" @@ -1837,8 +1990,8 @@ msgstr "Neuer Auftrag" msgid "Supplier Part" msgstr "Zulieferer-Teil" -#: company/templates/company/supplier_part_base.html:35 part/templates/part/orders.html:17 -#: part/templates/part/part_base.html:64 +#: company/templates/company/supplier_part_base.html:35 +#: part/templates/part/orders.html:17 part/templates/part/part_base.html:64 msgid "Order part" msgstr "Teil bestellen" @@ -1865,7 +2018,8 @@ msgstr "Internes Teil" msgid "Packaging" msgstr "Verpackungen" -#: company/templates/company/supplier_part_orders.html:18 part/templates/part/orders.html:18 +#: company/templates/company/supplier_part_orders.html:18 +#: part/templates/part/orders.html:18 msgid "Order Part" msgstr "Teil bestellen" @@ -1873,111 +2027,129 @@ msgstr "Teil bestellen" msgid "Pricing Information" msgstr "Preisinformationen ansehen" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:485 -#: part/templates/part/sale_prices.html:17 part/views.py:2511 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:569 +#: part/templates/part/sale_prices.html:17 part/views.py:2618 msgid "Add Price Break" msgstr "Preisstaffel hinzufügen" -#: company/templates/company/supplier_part_pricing.html:38 part/templates/part/sale_prices.html:46 +#: company/templates/company/supplier_part_pricing.html:38 +#: part/templates/part/sale_prices.html:46 msgid "No price break information found" msgstr "Keine Informationen zur Preisstaffel gefunden" -#: company/templates/company/supplier_part_pricing.html:89 part/templates/part/sale_prices.html:97 +#: company/templates/company/supplier_part_pricing.html:89 +#: part/templates/part/sale_prices.html:97 msgid "Edit price break" msgstr "Preisstaffel bearbeiten" -#: company/templates/company/supplier_part_pricing.html:90 part/templates/part/sale_prices.html:98 +#: company/templates/company/supplier_part_pricing.html:90 +#: part/templates/part/sale_prices.html:98 msgid "Delete price break" msgstr "Preisstaffel löschen" -#: company/views.py:55 part/templates/part/navbar.html:72 part/templates/part/navbar.html:75 -#: templates/InvenTree/search.html:291 templates/navbar.html:35 +#: company/views.py:61 part/templates/part/navbar.html:72 +#: part/templates/part/navbar.html:75 templates/InvenTree/search.html:291 +#: templates/navbar.html:35 msgid "Suppliers" msgstr "Zulieferer" -#: company/views.py:62 templates/InvenTree/search.html:308 templates/navbar.html:36 +#: company/views.py:68 templates/InvenTree/search.html:308 +#: templates/navbar.html:36 msgid "Manufacturers" msgstr "Hersteller" -#: company/views.py:69 templates/InvenTree/search.html:321 templates/navbar.html:45 +#: company/views.py:75 templates/InvenTree/search.html:321 +#: templates/navbar.html:45 msgid "Customers" msgstr "Kunden" -#: company/views.py:70 +#: company/views.py:76 order/templates/order/sales_orders.html:184 msgid "New Customer" msgstr "Neuer Kunde" -#: company/views.py:78 +#: company/views.py:84 msgid "Companies" msgstr "Firmen" -#: company/views.py:79 +#: company/views.py:85 msgid "New Company" msgstr "Neue Firma" -#: company/views.py:157 +#: company/views.py:167 part/views.py:848 +msgid "Download Image" +msgstr "Bild herunterladen" + +#: company/views.py:196 part/views.py:880 +msgid "Image size exceeds maximum allowable size for download" +msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads" + +#: company/views.py:212 part/views.py:896 +msgid "Supplied URL is not a valid image file" +msgstr "Angegebene URL ist kein gültiges Bild" + +#: company/views.py:241 msgid "Update Company Image" msgstr "Firmenbild aktualisieren" -#: company/views.py:163 +#: company/views.py:247 msgid "Updated company image" msgstr "Aktualisiertes Firmenbild" -#: company/views.py:173 +#: company/views.py:257 msgid "Edit Company" msgstr "Firma bearbeiten" -#: company/views.py:178 +#: company/views.py:262 msgid "Edited company information" msgstr "Firmeninformation bearbeitet" -#: company/views.py:201 +#: company/views.py:285 order/templates/order/sales_orders.html:185 msgid "Create new Customer" msgstr "Neuen Kunden anlegen" -#: company/views.py:203 +#: company/views.py:287 msgid "Create new Company" msgstr "Neue Firma anlegen" -#: company/views.py:230 +#: company/views.py:314 msgid "Created new company" msgstr "Neue Firma angelegt" -#: company/views.py:240 +#: company/views.py:324 msgid "Delete Company" msgstr "Firma löschen" -#: company/views.py:246 +#: company/views.py:330 msgid "Company was deleted" msgstr "Firma gelöscht" -#: company/views.py:271 +#: company/views.py:355 msgid "Edit Supplier Part" msgstr "Zulieferer-Teil bearbeiten" -#: company/views.py:294 templates/js/stock.js:1083 +#: company/views.py:378 templates/js/stock.js:1083 msgid "Create new Supplier Part" msgstr "Neues Zulieferer-Teil anlegen" -#: company/views.py:413 +#: company/views.py:497 msgid "Delete Supplier Part" msgstr "Zulieferer-Teil entfernen" -#: company/views.py:490 part/views.py:2515 +#: company/views.py:574 part/views.py:2622 msgid "Added new price break" msgstr "neue Preisstaffel hinzufügt" -#: company/views.py:546 part/views.py:2559 +#: company/views.py:630 part/views.py:2666 msgid "Edit Price Break" msgstr "Preisstaffel bearbeiten" -#: company/views.py:561 part/views.py:2573 +#: company/views.py:645 part/views.py:2680 msgid "Delete Price Break" msgstr "Preisstaffel löschen" -#: label/api.py:56 report/api.py:162 +#: label/api.py:56 report/api.py:201 msgid "No valid objects provided to template" -msgstr "" +msgstr "Keine korrekten Objekte für Vorlage gegeben" #: label/models.py:102 msgid "Label name" @@ -1989,23 +2161,23 @@ msgstr "Label Beschreibung" #: label/models.py:116 stock/forms.py:201 msgid "Label" -msgstr "" +msgstr "Label" #: label/models.py:117 msgid "Label template file" msgstr "Label-Vorlage-Datei" -#: label/models.py:123 report/models.py:257 +#: label/models.py:123 report/models.py:274 msgid "Enabled" msgstr "Aktiviert" #: label/models.py:124 msgid "Label template is enabled" -msgstr "" +msgstr "Label-Vorlage ist aktiviert" #: label/models.py:130 msgid "Label width, specified in mm" -msgstr "" +msgstr "Label-Breite in mm" #: label/models.py:136 msgid "Height [mm]" @@ -2013,30 +2185,31 @@ msgstr "Höhe [mm]" #: label/models.py:137 msgid "Label height, specified in mm" -msgstr "" +msgstr "Label-Höhe in mm" #: label/models.py:222 label/models.py:273 msgid "Query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: label/models.py:223 label/models.py:274 report/models.py:277 +#: label/models.py:223 label/models.py:274 report/models.py:294 +#: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "Filter" -#: order/forms.py:25 order/templates/order/order_base.html:44 +#: order/forms.py:25 order/templates/order/order_base.html:47 msgid "Place order" msgstr "Bestellung aufgeben" -#: order/forms.py:36 order/templates/order/order_base.html:51 +#: order/forms.py:36 order/templates/order/order_base.html:54 msgid "Mark order as complete" msgstr "Bestellung als vollständig markieren" -#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:56 -#: order/templates/order/sales_order_base.html:56 +#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:59 +#: order/templates/order/sales_order_base.html:59 msgid "Cancel order" msgstr "Bestellung stornieren" -#: order/forms.py:69 order/templates/order/sales_order_base.html:53 +#: order/forms.py:69 order/templates/order/sales_order_base.html:56 msgid "Ship order" msgstr "Bestellung versenden" @@ -2050,200 +2223,222 @@ msgstr "Bestellungs-Referenz" #: order/forms.py:107 msgid "Target date for order delivery. Order will be overdue after this date." -msgstr "" +msgstr "Zieldatum für Auftrags-Lieferung." -#: order/forms.py:134 +#: order/forms.py:135 msgid "Enter sales order number" msgstr "Auftrag-Nummer eingeben" -#: order/forms.py:140 order/models.py:438 -msgid "Target date for order completion. Order will be overdue after this date." -msgstr "" +#: order/forms.py:141 order/models.py:448 +msgid "" +"Target date for order completion. Order will be overdue after this date." +msgstr "Zieldatum für Auftrags-Fertigstellung." -#: order/models.py:98 +#: order/models.py:99 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:100 +#: order/models.py:101 msgid "Order description" msgstr "Bestellungs-Beschreibung" -#: order/models.py:102 +#: order/models.py:103 msgid "Link to external page" msgstr "Link auf externe Seite" -#: order/models.py:112 +#: order/models.py:117 +msgid "User or group responsible for this order" +msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind" + +#: order/models.py:122 msgid "Order notes" msgstr "Bestell-Notizen" -#: order/models.py:171 order/models.py:431 +#: order/models.py:181 order/models.py:441 msgid "Purchase order status" msgstr "Bestellungs-Status" -#: order/models.py:179 +#: order/models.py:189 msgid "Company from which the items are being ordered" -msgstr "" +msgstr "Firma bei der die Teile bestellt werden" -#: order/models.py:182 +#: order/models.py:192 msgid "Supplier order reference code" msgstr "Zulieferer Bestellreferenz" -#: order/models.py:193 +#: order/models.py:203 msgid "Issue Date" msgstr "Aufgabedatum" -#: order/models.py:194 +#: order/models.py:204 msgid "Date order was issued" msgstr "Datum an dem die Bestellung aufgegeben wurde" -#: order/models.py:199 +#: order/models.py:209 msgid "Target Delivery Date" msgstr "Ziel-Versanddatum" -#: order/models.py:200 -msgid "Expected date for order delivery. Order will be overdue after this date." -msgstr "" +#: order/models.py:210 +msgid "" +"Expected date for order delivery. Order will be overdue after this date." +msgstr "Geplantes Lieferdatum für Auftrag." -#: order/models.py:205 +#: order/models.py:215 msgid "Completion Date" msgstr "Fertigstellungsdatum" -#: order/models.py:206 -#, fuzzy -#| msgid "Mark order as complete" +#: order/models.py:216 msgid "Date order was completed" -msgstr "Bestellung als vollständig markieren" +msgstr "Datum an dem der Auftrag fertigstellt wurde" -#: order/models.py:230 order/models.py:329 part/views.py:1479 stock/models.py:269 stock/models.py:948 +#: order/models.py:240 order/models.py:339 part/views.py:1586 +#: stock/models.py:269 stock/models.py:948 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: order/models.py:235 +#: order/models.py:245 msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen" -#: order/models.py:324 +#: order/models.py:334 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden" -#: order/models.py:346 +#: order/models.py:356 msgid "Received items" msgstr "Elemente empfangen" -#: order/models.py:427 +#: order/models.py:437 msgid "Company to which the items are being sold" -msgstr "" +msgstr "Firma an die die Teile verkauft werden" -#: order/models.py:433 +#: order/models.py:443 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:491 +#: order/models.py:501 msgid "SalesOrder cannot be shipped as it is not currently pending" -msgstr "VK-Auftrag kann nicht versendet werden weil er nicht anhängig ist" +msgstr "Bestellung kann nicht versendet werden weil er nicht anhängig ist" -#: order/models.py:578 +#: order/models.py:588 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:580 +#: order/models.py:590 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:582 +#: order/models.py:592 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:608 order/templates/order/order_base.html:9 order/templates/order/order_base.html:24 +#: order/models.py:618 order/templates/order/order_base.html:9 +#: order/templates/order/order_base.html:24 +#: report/templates/report/inventree_po_report.html:77 #: stock/templates/stock/item_base.html:303 templates/js/order.js:148 msgid "Purchase Order" msgstr "Bestellung" -#: order/models.py:621 +#: order/models.py:631 msgid "Supplier part" msgstr "Zulieferer-Teil" -#: order/models.py:624 +#: order/models.py:634 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:631 stock/models.py:505 stock/templates/stock/item_base.html:310 +#: order/models.py:641 stock/models.py:505 +#: stock/templates/stock/item_base.html:310 msgid "Purchase Price" msgstr "EK-Preis" -#: order/models.py:632 +#: order/models.py:642 msgid "Unit purchase price" msgstr "EK-Preis pro Einheit" -#: order/models.py:727 +#: order/models.py:737 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:729 +#: order/models.py:739 msgid "Cannot allocate stock to a line without a part" msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen" -#: order/models.py:732 +#: order/models.py:742 msgid "Allocation quantity cannot exceed stock quantity" msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:742 +#: order/models.py:752 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein" -#: order/models.py:758 +#: order/models.py:768 msgid "Select stock item to allocate" msgstr "BestandsObjekt für Zuordnung auswählen" -#: order/models.py:761 +#: order/models.py:771 msgid "Enter stock allocation quantity" msgstr "Anzahl für Bestandszuordnung eingeben" -#: order/templates/order/delete_attachment.html:5 stock/templates/stock/attachment_delete.html:5 +#: order/templates/order/delete_attachment.html:5 +#: stock/templates/stock/attachment_delete.html:5 #: templates/attachment_delete.html:5 msgid "Are you sure you want to delete this attachment?" msgstr "Sind Sie sicher, dass Sie diesen Anhang löschen wollen?" -#: order/templates/order/order_base.html:40 +#: order/templates/order/order_base.html:39 +#: order/templates/order/sales_order_base.html:48 +msgid "Print" +msgstr "Drucken" + +#: order/templates/order/order_base.html:43 msgid "Edit order information" msgstr "Bestellinfos bearbeiten" -#: order/templates/order/order_base.html:48 +#: order/templates/order/order_base.html:51 msgid "Receive items" msgstr "Elemente empfangen" -#: order/templates/order/order_base.html:61 +#: order/templates/order/order_base.html:64 msgid "Export order to file" msgstr "Exportiere Bestellung in Datei" -#: order/templates/order/order_base.html:69 order/templates/order/po_navbar.html:11 +#: order/templates/order/order_base.html:72 +#: order/templates/order/po_navbar.html:11 msgid "Purchase Order Details" msgstr "Bestellungs-Details" -#: order/templates/order/order_base.html:74 order/templates/order/sales_order_base.html:74 +#: order/templates/order/order_base.html:77 +#: order/templates/order/sales_order_base.html:77 msgid "Order Reference" msgstr "Bestellreferenz" -#: order/templates/order/order_base.html:79 order/templates/order/sales_order_base.html:79 +#: order/templates/order/order_base.html:82 +#: order/templates/order/sales_order_base.html:82 msgid "Order Status" msgstr "Bestellstatus" -#: order/templates/order/order_base.html:95 templates/js/order.js:179 +#: order/templates/order/order_base.html:98 templates/js/order.js:179 msgid "Supplier Reference" msgstr "Zulieferer-Referenz" -#: order/templates/order/order_base.html:114 report/templates/report/inventree_build_order_base.html:125 +#: order/templates/order/order_base.html:117 +#: report/templates/report/inventree_build_order_base.html:122 msgid "Issued" msgstr "Aufgegeben" -#: order/templates/order/order_base.html:128 order/templates/order/purchase_order_detail.html:207 -#: order/templates/order/receive_parts.html:22 order/templates/order/sales_order_base.html:128 +#: order/templates/order/order_base.html:131 +#: order/templates/order/purchase_order_detail.html:207 +#: order/templates/order/receive_parts.html:22 +#: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "Empfangen" -#: order/templates/order/order_cancel.html:7 order/templates/order/sales_order_cancel.html:9 +#: order/templates/order/order_cancel.html:7 +#: order/templates/order/sales_order_cancel.html:9 msgid "Cancelling this order means that the order will no longer be editable." -msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." +msgstr "" +"Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist." #: order/templates/order/order_notes.html:13 msgid "Order Notes" @@ -2277,8 +2472,8 @@ msgstr "Schritt 2 von 2 - Bestellung auswählen" msgid "Select existing purchase orders, or create new orders." msgstr "Bestellungen auswählen oder anlegen." -#: order/templates/order/order_wizard/select_pos.html:31 templates/js/order.js:205 -#: templates/js/order.js:308 +#: order/templates/order/order_wizard/select_pos.html:31 +#: templates/js/order.js:205 templates/js/order.js:308 msgid "Items" msgstr "Positionen" @@ -2290,7 +2485,8 @@ msgstr "Bestellung auswählen" msgid "Select a purchase order for" msgstr "Bestellung auswählen für" -#: order/templates/order/po_attachments.html:12 order/templates/order/po_navbar.html:23 +#: order/templates/order/po_attachments.html:12 +#: order/templates/order/po_navbar.html:23 msgid "Purchase Order Attachments" msgstr "Bestellungs-Anhänge" @@ -2298,7 +2494,8 @@ msgstr "Bestellungs-Anhänge" msgid "Received Stock Items" msgstr "BestandsObjekte empfangen" -#: order/templates/order/po_navbar.html:20 order/templates/order/po_received_items.html:12 +#: order/templates/order/po_navbar.html:20 +#: order/templates/order/po_received_items.html:12 msgid "Received Items" msgstr "Empfangene Teile" @@ -2306,19 +2503,22 @@ msgstr "Empfangene Teile" msgid "Purchase Order Items" msgstr "Bestellungs-Positionen" -#: order/templates/order/purchase_order_detail.html:24 order/templates/order/sales_order_detail.html:22 -#: order/views.py:1105 order/views.py:1188 +#: order/templates/order/purchase_order_detail.html:24 +#: order/templates/order/sales_order_detail.html:22 order/views.py:1105 +#: order/views.py:1188 msgid "Add Line Item" msgstr "Position hinzufügen" #: order/templates/order/purchase_order_detail.html:45 -#: order/templates/order/purchase_order_detail.html:125 part/templates/part/category.html:197 -#: part/templates/part/category.html:239 templates/js/stock.js:704 templates/js/stock.js:1088 +#: order/templates/order/purchase_order_detail.html:125 +#: part/templates/part/category.html:197 part/templates/part/category.html:239 +#: templates/js/stock.js:704 templates/js/stock.js:1088 msgid "New Location" msgstr "Neuer Lagerort" #: order/templates/order/purchase_order_detail.html:46 -#: order/templates/order/purchase_order_detail.html:126 stock/templates/stock/location.html:35 +#: order/templates/order/purchase_order_detail.html:126 +#: stock/templates/stock/location.html:35 msgid "Create new stock location" msgstr "Neuen Lagerort anlegen" @@ -2330,7 +2530,8 @@ msgstr "Keine Positionen gefunden" msgid "Unit Price" msgstr "Stück-Preis" -#: order/templates/order/purchase_order_detail.html:239 order/templates/order/sales_order_detail.html:289 +#: order/templates/order/purchase_order_detail.html:239 +#: order/templates/order/sales_order_detail.html:289 msgid "Edit line item" msgstr "Position bearbeiten" @@ -2342,20 +2543,25 @@ msgstr "Position löschen" msgid "Receive line item" msgstr "Position empfangen" +#: order/templates/order/purchase_orders.html:24 +#: order/templates/order/sales_orders.html:24 +msgid "Print Order Reports" +msgstr "Berichte drucken" + #: order/templates/order/receive_parts.html:8 msgid "Receive outstanding parts for" -msgstr "" +msgstr "Empfange ausstehende Teile für" #: order/templates/order/receive_parts.html:15 msgid "Select parts to receive against this order" -msgstr "" +msgstr "Teile, die für diese Bestellung empfangen werden sollen, auswählen" #: order/templates/order/receive_parts.html:20 msgid "Order Code" msgstr "Bestellnummer" -#: order/templates/order/receive_parts.html:21 part/templates/part/part_base.html:128 -#: templates/js/part.js:413 +#: order/templates/order/receive_parts.html:21 +#: part/templates/part/part_base.html:128 templates/js/part.js:413 msgid "On Order" msgstr "bestellt" @@ -2365,26 +2571,29 @@ msgstr "Empfangen" #: order/templates/order/receive_parts.html:36 msgid "Error: Referenced part has been removed" -msgstr "" +msgstr "Fehler: verknüpftes Teil wurde gelöscht" #: order/templates/order/sales_order_base.html:15 msgid "This SalesOrder has not been fully allocated" msgstr "Dieser Auftrag ist nicht vollständig zugeordnet" -#: order/templates/order/sales_order_base.html:61 +#: order/templates/order/sales_order_base.html:64 msgid "Packing List" msgstr "Packliste" -#: order/templates/order/sales_order_base.html:69 order/templates/order/so_navbar.html:12 +#: order/templates/order/sales_order_base.html:72 +#: order/templates/order/so_navbar.html:12 msgid "Sales Order Details" msgstr "Auftragsdetails" -#: order/templates/order/sales_order_base.html:95 templates/js/order.js:275 +#: order/templates/order/sales_order_base.html:98 templates/js/order.js:275 msgid "Customer Reference" msgstr "Kundenreferenz" -#: order/templates/order/sales_order_cancel.html:8 order/templates/order/sales_order_ship.html:9 -#: part/templates/part/bom_duplicate.html:12 stock/templates/stock/stockitem_convert.html:13 +#: order/templates/order/sales_order_cancel.html:8 +#: order/templates/order/sales_order_ship.html:9 +#: part/templates/part/bom_duplicate.html:12 +#: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" msgstr "Warnung" @@ -2392,21 +2601,26 @@ msgstr "Warnung" msgid "Sales Order Items" msgstr "Auftrags-Positionen" -#: order/templates/order/sales_order_detail.html:75 order/templates/order/sales_order_detail.html:157 -#: report/templates/report/inventree_test_report_base.html:75 stock/models.py:417 -#: stock/templates/stock/item_base.html:228 templates/js/build.js:418 +#: order/templates/order/sales_order_detail.html:75 +#: order/templates/order/sales_order_detail.html:157 +#: report/templates/report/inventree_test_report_base.html:75 +#: stock/models.py:417 stock/templates/stock/item_base.html:228 +#: templates/js/build.js:418 msgid "Serial Number" msgstr "Seriennummer" -#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:459 templates/js/build.js:789 +#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:459 +#: templates/js/build.js:789 msgid "Edit stock allocation" msgstr "Bestands-Zuordnung bearbeiten" -#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:461 templates/js/build.js:790 +#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:461 +#: templates/js/build.js:790 msgid "Delete stock allocation" msgstr "Bestands-Zuordnung löschen" -#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:523 templates/js/build.js:785 +#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:523 +#: templates/js/build.js:785 msgid "Allocated" msgstr "Zugeordnet" @@ -2436,11 +2650,11 @@ msgstr "Auftrags-Positionen" #: order/templates/order/sales_order_ship.html:10 msgid "" -"This order has not been fully allocated. If the order is marked as shipped, it can no longer be " -"adjusted." +"This order has not been fully allocated. If the order is marked as shipped, " +"it can no longer be adjusted." msgstr "" -"Dieser Auftrag ist nicht vollständig zugeordnet. Wenn der Auftrag als versendet markiert wird, kann er " -"nicht mehr geändert werden." +"Dieser Auftrag ist nicht vollständig zugeordnet. Wenn der Auftrag als " +"versendet markiert wird, kann er nicht mehr geändert werden." #: order/templates/order/sales_order_ship.html:12 msgid "Ensure that the order allocation is correct before shipping the order." @@ -2456,13 +2670,16 @@ msgstr "Vor dem Versand sicherstellen, dass dies richtig ist." #: order/templates/order/sales_order_ship.html:27 msgid "Shipping this order means that the order will no longer be editable." -msgstr "Versenden dieses Auftrags bedeutet, dass der Auftrag nicht mehr bearbeitbar ist." +msgstr "" +"Versenden dieses Auftrags bedeutet, dass der Auftrag nicht mehr bearbeitbar " +"ist." #: order/templates/order/so_allocation_delete.html:7 msgid "This action will unallocate the following stock from the Sales Order" msgstr "Diese Aktion wird die folgenden BestandsObjekt vom Auftrag entfernen" -#: order/templates/order/so_attachments.html:12 order/templates/order/so_navbar.html:26 +#: order/templates/order/so_attachments.html:12 +#: order/templates/order/so_navbar.html:26 msgid "Sales Order Attachments" msgstr "Auftrags-Anhänge" @@ -2611,136 +2828,137 @@ msgstr "Standard-Lagerort" msgid "Available Stock" msgstr "Verfügbarer Lagerbestand" -#: part/bom.py:274 +#: part/bom.py:278 #, python-brace-format msgid "Unsupported file format: {f}" msgstr "Nicht unterstütztes Dateiformat: {f}" -#: part/bom.py:279 +#: part/bom.py:283 msgid "Error reading BOM file (invalid data)" msgstr "Fehler beim Lesen der Stückliste (ungültige Daten)" -#: part/bom.py:281 +#: part/bom.py:285 msgid "Error reading BOM file (incorrect row size)" msgstr "Fehler beim Lesen der Stückliste (ungültige Zeilengröße)" -#: part/forms.py:71 stock/forms.py:264 +#: part/forms.py:89 stock/forms.py:264 msgid "File Format" msgstr "Dateiformat" -#: part/forms.py:71 stock/forms.py:264 +#: part/forms.py:89 stock/forms.py:264 msgid "Select output file format" msgstr "Ausgabe-Dateiformat auswählen" -#: part/forms.py:73 +#: part/forms.py:91 msgid "Cascading" msgstr "Kaskadierend" -#: part/forms.py:73 +#: part/forms.py:91 msgid "Download cascading / multi-level BOM" msgstr "Kaskadierende Stückliste herunterladen" -#: part/forms.py:75 +#: part/forms.py:93 msgid "Levels" -msgstr "" +msgstr "Ebenen" -#: part/forms.py:75 +#: part/forms.py:93 msgid "Select maximum number of BOM levels to export (0 = all levels)" -msgstr "Maximale Anzahl an Ebenen für Stückliste-Export auswählen (0 = alle Ebenen)" +msgstr "" +"Maximale Anzahl an Ebenen für Stückliste-Export auswählen (0 = alle Ebenen)" -#: part/forms.py:77 +#: part/forms.py:95 msgid "Include Parameter Data" msgstr "Parameter-Daten einschließen" -#: part/forms.py:77 +#: part/forms.py:95 msgid "Include part parameters data in exported BOM" msgstr "Teil-Parameter in Stückliste-Export einschließen" -#: part/forms.py:79 +#: part/forms.py:97 msgid "Include Stock Data" msgstr "Bestand einschließen" -#: part/forms.py:79 +#: part/forms.py:97 msgid "Include part stock data in exported BOM" msgstr "Teil-Bestand in Stückliste-Export einschließen" -#: part/forms.py:81 +#: part/forms.py:99 msgid "Include Supplier Data" msgstr "Zulieferer einschließen" -#: part/forms.py:81 +#: part/forms.py:99 msgid "Include part supplier data in exported BOM" msgstr "Zulieferer-Daten in Stückliste-Export einschließen" -#: part/forms.py:102 part/models.py:2053 +#: part/forms.py:120 part/models.py:2053 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/forms.py:103 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:121 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "Teil für Stücklisten-Kopie auswählen" -#: part/forms.py:109 +#: part/forms.py:127 msgid "Clear existing BOM items" msgstr "Stücklisten-Position(en) löschen" -#: part/forms.py:114 +#: part/forms.py:132 msgid "Confirm BOM duplication" msgstr "Kopie von Stückliste bestätigen" -#: part/forms.py:132 +#: part/forms.py:150 msgid "Confirm that the BOM is correct" msgstr "Bestätigen, dass die Stückliste korrekt ist" -#: part/forms.py:144 +#: part/forms.py:162 msgid "Select BOM file to upload" msgstr "Stücklisten-Datei zum Upload auswählen" -#: part/forms.py:163 +#: part/forms.py:181 msgid "Related Part" msgstr "verknüpftes Teil" -#: part/forms.py:182 +#: part/forms.py:200 msgid "Select part category" msgstr "Teilekategorie wählen" -#: part/forms.py:199 +#: part/forms.py:217 msgid "Duplicate all BOM data for this part" msgstr "Stückliste für dieses Teil kopieren" -#: part/forms.py:200 +#: part/forms.py:218 msgid "Copy BOM" msgstr "Stückliste kopieren" -#: part/forms.py:205 +#: part/forms.py:223 msgid "Duplicate all parameter data for this part" -msgstr "" +msgstr "Alle Parameter-Daten für dieses Teil kopieren" -#: part/forms.py:206 +#: part/forms.py:224 msgid "Copy Parameters" msgstr "Parameter kopieren" -#: part/forms.py:211 +#: part/forms.py:229 msgid "Confirm part creation" msgstr "Erstellen des Teils bestätigen" -#: part/forms.py:216 +#: part/forms.py:234 msgid "Include category parameter templates" msgstr "Kategorie Parameter-Vorlage einschließen" -#: part/forms.py:221 +#: part/forms.py:239 msgid "Include parent categories parameter templates" msgstr "Über-Kategorie Parameter-Vorlage einschließen" -#: part/forms.py:301 +#: part/forms.py:319 msgid "Add parameter template to same level categories" msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen" -#: part/forms.py:305 +#: part/forms.py:323 msgid "Add parameter template to all categories" msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen" -#: part/forms.py:350 +#: part/forms.py:368 msgid "Input quantity for price calculation" msgstr "Eintragsmenge zur Preisberechnung" @@ -2752,12 +2970,14 @@ msgstr "Standard-Lagerort für Teile dieser Kategorie" msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:81 part/models.py:2098 part/templates/part/part_app_base.html:9 +#: part/models.py:81 part/models.py:2098 +#: part/templates/part/part_app_base.html:9 msgid "Part Category" msgstr "Teilkategorie" -#: part/models.py:82 part/templates/part/category.html:19 part/templates/part/category.html:90 -#: part/templates/part/category.html:141 templates/InvenTree/search.html:126 templates/stats.html:39 +#: part/models.py:82 part/templates/part/category.html:19 +#: part/templates/part/category.html:90 part/templates/part/category.html:141 +#: templates/InvenTree/search.html:126 templates/stats.html:39 #: users/models.py:32 msgid "Part Categories" msgstr "Teile-Kategorien" @@ -2781,7 +3001,7 @@ msgstr "Die neuste Seriennummer ist" #: part/models.py:642 msgid "Duplicate IPN not allowed in part settings" -msgstr "" +msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt" #: part/models.py:653 msgid "Part must be unique for name, IPN and revision" @@ -2811,7 +3031,8 @@ msgstr "Variante von" msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:715 part/templates/part/category.html:69 part/templates/part/detail.html:67 +#: part/models.py:715 part/templates/part/category.html:69 +#: part/templates/part/detail.html:67 msgid "Keywords" msgstr "Schlüsselwörter" @@ -2819,8 +3040,8 @@ msgstr "Schlüsselwörter" msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:723 part/templates/part/detail.html:73 part/templates/part/set_category.html:15 -#: templates/js/part.js:384 +#: part/models.py:723 part/templates/part/detail.html:73 +#: part/templates/part/set_category.html:15 templates/js/part.js:384 msgid "Category" msgstr "Kategorie" @@ -2828,8 +3049,8 @@ msgstr "Kategorie" msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:729 part/templates/part/detail.html:28 part/templates/part/part_base.html:93 -#: templates/js/part.js:160 +#: part/models.py:729 part/templates/part/detail.html:28 +#: part/templates/part/part_base.html:93 templates/js/part.js:160 msgid "IPN" msgstr "IPN (Interne Produktnummer)" @@ -2841,7 +3062,8 @@ msgstr "Interne Teilenummer" msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:737 part/templates/part/detail.html:35 report/models.py:181 templates/js/part.js:164 +#: part/models.py:737 part/templates/part/detail.html:35 report/models.py:198 +#: templates/js/part.js:164 msgid "Revision" msgstr "Revision" @@ -2873,7 +3095,8 @@ msgstr "Minimaler Lagerbestand" msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Lagerbestand" -#: part/models.py:826 part/templates/part/detail.html:106 part/templates/part/params.html:29 +#: part/models.py:826 part/templates/part/detail.html:106 +#: part/templates/part/params.html:29 msgid "Units" msgstr "Einheiten" @@ -2901,8 +3124,9 @@ msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:859 part/templates/part/detail.html:227 templates/js/table_filters.js:20 -#: templates/js/table_filters.js:60 templates/js/table_filters.js:209 templates/js/table_filters.js:278 +#: part/models.py:859 part/templates/part/detail.html:227 +#: templates/js/table_filters.js:20 templates/js/table_filters.js:60 +#: templates/js/table_filters.js:214 templates/js/table_filters.js:283 msgid "Active" msgstr "Aktiv" @@ -2946,7 +3170,8 @@ msgstr "Test-Beschreibung" msgid "Enter description for this test" msgstr "Beschreibung für diesen Test eingeben" -#: part/models.py:1974 templates/js/part.js:570 templates/js/table_filters.js:195 +#: part/models.py:1974 templates/js/part.js:570 +#: templates/js/table_filters.js:200 msgid "Required" msgstr "benötigt" @@ -2961,6 +3186,7 @@ msgstr "verpflichtender Wert" #: part/models.py:1981 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:1986 templates/js/part.js:585 msgid "Requires Attachment" @@ -2969,6 +3195,7 @@ msgstr "Anhang muss eingegeben werden" #: part/models.py:1987 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:2020 msgid "Parameter template name must be unique" @@ -2982,7 +3209,8 @@ msgstr "Name des Parameters" msgid "Parameter Units" msgstr "Parameter Einheit" -#: part/models.py:2055 part/models.py:2103 templates/InvenTree/settings/category.html:62 +#: part/models.py:2055 part/models.py:2103 +#: templates/InvenTree/settings/category.html:62 msgid "Parameter Template" msgstr "Parameter Vorlage" @@ -3026,15 +3254,18 @@ msgstr "Notizen zur Stücklisten-Position" msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:2166 templates/js/bom.js:275 templates/js/bom.js:282 templates/js/table_filters.js:50 +#: part/models.py:2166 templates/js/bom.js:275 templates/js/bom.js:282 +#: templates/js/table_filters.js:50 msgid "Inherited" -msgstr "" +msgstr "Geerbt" #: part/models.py:2167 msgid "This BOM item is inherited by BOMs for variant parts" -msgstr "Diese Stücklisten-Position wird in dei Stücklisten von Teil-Varianten vererbt" +msgstr "" +"Diese Stücklisten-Position wird in dei Stücklisten von Teil-Varianten vererbt" -#: part/models.py:2243 part/views.py:1485 part/views.py:1537 stock/models.py:259 +#: part/models.py:2243 part/views.py:1592 part/views.py:1644 +#: stock/models.py:259 msgid "Quantity must be integer value for trackable parts" msgstr "Menge muss eine Ganzzahl sein" @@ -3052,23 +3283,30 @@ msgstr "verknüpftes Teil auswählen" #: part/models.py:2410 msgid "" -"Error creating relationship: check that the part is not related to itself and that the relationship is " -"unique" +"Error creating relationship: check that the part is not related to itself " +"and that the relationship is unique" msgstr "" +"Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das " +"die Verwandtschaft nicht eindeutig?" #: part/templates/part/allocation.html:11 msgid "Part Stock Allocations" msgstr "Teil-Bestandszuordnungen" -#: part/templates/part/allocation.html:17 part/templates/part/allocation.html:45 +#: part/templates/part/allocation.html:17 +#: part/templates/part/allocation.html:45 msgid "Order" msgstr "Bestellung" -#: part/templates/part/allocation.html:18 part/templates/part/allocation.html:24 -#: part/templates/part/allocation.html:31 part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:8 stock/templates/stock/item_base.html:89 -#: stock/templates/stock/item_base.html:318 stock/templates/stock/stock_adjust.html:16 -#: templates/js/build.js:771 templates/js/stock.js:923 templates/js/stock.js:1181 +#: part/templates/part/allocation.html:18 +#: part/templates/part/allocation.html:24 +#: part/templates/part/allocation.html:31 +#: part/templates/part/allocation.html:49 +#: stock/templates/stock/item_base.html:8 +#: stock/templates/stock/item_base.html:89 +#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:771 +#: templates/js/stock.js:923 templates/js/stock.js:1181 msgid "Stock Item" msgstr "BestandsObjekt" @@ -3082,9 +3320,12 @@ msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?" #: part/templates/part/bom-delete.html:8 msgid "Deleting this entry will remove the BOM row from the following part" -msgstr "Die Löschung dieses Eintrags wird das Stücklisten-Position vom folgenden Teil entfernen" +msgstr "" +"Die Löschung dieses Eintrags wird das Stücklisten-Position vom folgenden " +"Teil entfernen" -#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 part/templates/part/navbar.html:51 +#: part/templates/part/bom.html:10 part/templates/part/navbar.html:48 +#: part/templates/part/navbar.html:51 msgid "Bill of Materials" msgstr "Stückliste" @@ -3116,7 +3357,7 @@ msgstr "Stückliste bearbeiten" msgid "Validate Bill of Materials" msgstr "Stückliste validieren" -#: part/templates/part/bom.html:61 part/views.py:1776 +#: part/templates/part/bom.html:61 part/views.py:1883 msgid "Export Bill of Materials" msgstr "Stückliste exportieren" @@ -3132,7 +3373,8 @@ msgstr "Ausgewählte Stücklistenpositionen löschen?" msgid "All selected BOM items will be deleted" msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht" -#: part/templates/part/bom.html:160 part/views.py:579 templates/js/stock.js:1077 +#: part/templates/part/bom.html:160 part/views.py:584 +#: templates/js/stock.js:1077 msgid "Create New Part" msgstr "Neues Teil anlegen" @@ -3141,7 +3383,8 @@ msgid "This part already has a Bill of Materials" msgstr "Dieses Teil hat bereits eine Stückliste" #: part/templates/part/bom_upload/select_fields.html:11 -#: part/templates/part/bom_upload/select_parts.html:11 part/templates/part/bom_upload/upload_file.html:11 +#: part/templates/part/bom_upload/select_parts.html:11 +#: part/templates/part/bom_upload/upload_file.html:11 msgid "Upload Bill of Materials" msgstr "Stückliste hochladen" @@ -3151,7 +3394,7 @@ msgstr "Schritt 2 - Felder auswählen" #: part/templates/part/bom_upload/select_fields.html:21 msgid "Missing selections for the following required columns" -msgstr "" +msgstr "Es fehlt eine Auswahl für die folgende benötigte Spalte" #: part/templates/part/bom_upload/select_fields.html:32 msgid "Submit Selections" @@ -3159,17 +3402,15 @@ msgstr "Auswahl übertragen" #: part/templates/part/bom_upload/select_fields.html:41 msgid "File Fields" -msgstr "" +msgstr "Datei-Felder" #: part/templates/part/bom_upload/select_fields.html:58 msgid "Match Fields" -msgstr "" +msgstr "Übereinstimmende Felder" #: part/templates/part/bom_upload/select_fields.html:68 -#, fuzzy -#| msgid "Duplicate part selected" msgid "Duplicate column selection" -msgstr "Teil doppelt ausgewählt" +msgstr "Spalte doppelt ausgewählt" #: part/templates/part/bom_upload/select_parts.html:16 msgid "Step 3 - Select Parts" @@ -3187,7 +3428,8 @@ msgstr "Stückliste abschicken" msgid "Row" msgstr "Zeile" -#: part/templates/part/bom_upload/select_parts.html:40 part/templates/part/bom_upload/select_parts.html:69 +#: part/templates/part/bom_upload/select_parts.html:40 +#: part/templates/part/bom_upload/select_parts.html:69 msgid "Select Part" msgstr "Teil auswählen" @@ -3195,7 +3437,8 @@ msgstr "Teil auswählen" msgid "Remove row" msgstr "Zeile entfernen" -#: part/templates/part/bom_upload/select_parts.html:65 part/templates/part/category.html:117 +#: part/templates/part/bom_upload/select_parts.html:65 +#: part/templates/part/category.html:117 msgid "Create new part" msgstr "Neues Teil anlegen" @@ -3208,7 +3451,8 @@ msgid "Requirements for BOM upload" msgstr "Anforderungen für Stückliste-Datei" #: part/templates/part/bom_upload/upload_file.html:21 -msgid "The BOM file must contain the required named columns as provided in the " +msgid "" +"The BOM file must contain the required named columns as provided in the " msgstr "Die Stückliste-Datei muss die aufgeführten Spalten enthalten; siehe" #: part/templates/part/bom_upload/upload_file.html:21 @@ -3217,7 +3461,7 @@ msgstr "Vorlage für Stückliste" #: part/templates/part/bom_upload/upload_file.html:22 msgid "Each part must already exist in the database" -msgstr "" +msgstr "Jedes Teil muss bereits in der Datenbank bestehen" #: part/templates/part/build.html:10 msgid "Part Builds" @@ -3231,7 +3475,7 @@ msgstr "Neuen Bau beginnen" msgid "All parts" msgstr "Alle Teile" -#: part/templates/part/category.html:25 part/views.py:2157 +#: part/templates/part/category.html:25 part/views.py:2264 msgid "Create new part category" msgstr "Teilkategorie anlegen" @@ -3303,7 +3547,8 @@ msgstr "Neuen Lagerort erstellen" msgid "Are you sure you want to delete category" msgstr "Sind Sie sicher, dass Sie diese Kategorie löschen wollen" -#: part/templates/part/category_delete.html:8 part/templates/part/category_delete.html:25 +#: part/templates/part/category_delete.html:8 +#: part/templates/part/category_delete.html:25 msgid "This category contains" msgstr "Kategorie enthält" @@ -3312,8 +3557,10 @@ msgid "child categories" msgstr "Unter-Kategorien" #: part/templates/part/category_delete.html:9 -msgid "If this category is deleted, these child categories will be moved to the" -msgstr "Wenn diese Kategorie gelöscht wird, werden alle Unter-Kat. verschoben nach" +msgid "" +"If this category is deleted, these child categories will be moved to the" +msgstr "" +"Wenn diese Kategorie gelöscht wird, werden alle Unter-Kat. verschoben nach" #: part/templates/part/category_delete.html:11 msgid "category" @@ -3328,36 +3575,46 @@ msgid "parts" msgstr "Teile" #: part/templates/part/category_delete.html:27 -msgid "If this category is deleted, these parts will be moved to the parent category" -msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete Kat. verschoben" +msgid "" +"If this category is deleted, these parts will be moved to the parent category" +msgstr "" +"Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete Kat. " +"verschoben" #: part/templates/part/category_delete.html:29 -msgid "If this category is deleted, these parts will be moved to the top-level category Teile" -msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. verschoben" +msgid "" +"If this category is deleted, these parts will be moved to the top-level " +"category Teile" +msgstr "" +"Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. " +"verschoben" -#: part/templates/part/category_navbar.html:18 part/templates/part/category_navbar.html:21 +#: part/templates/part/category_navbar.html:18 +#: part/templates/part/category_navbar.html:21 #: part/templates/part/navbar.html:22 msgid "Parameters" msgstr "Parameter" -#: part/templates/part/category_parametric.html:10 part/templates/part/navbar.html:19 -#: part/templates/part/params.html:10 +#: part/templates/part/category_parametric.html:10 +#: part/templates/part/navbar.html:19 part/templates/part/params.html:10 msgid "Part Parameters" msgstr "Teilparameter" -#: part/templates/part/copy_part.html:9 part/views.py:455 +#: part/templates/part/copy_part.html:9 part/views.py:460 msgid "Duplicate Part" msgstr "Teil duplizieren" #: part/templates/part/copy_part.html:10 msgid "Make a copy of part" -msgstr "" +msgstr "Eine Kopie des Teils erstellen" -#: part/templates/part/copy_part.html:14 part/templates/part/create_part.html:11 +#: part/templates/part/copy_part.html:14 +#: part/templates/part/create_part.html:11 msgid "Possible Matching Parts" msgstr "Evtl. passende Teile" -#: part/templates/part/copy_part.html:15 part/templates/part/create_part.html:12 +#: 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 "Teil evtl. Duplikat dieser Teile" @@ -3502,13 +3759,16 @@ msgstr "Teil-Bemerkungen" msgid "Add new parameter" msgstr "Parameter hinzufügen" -#: part/templates/part/params.html:18 templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:43 +#: part/templates/part/params.html:18 +#: templates/InvenTree/settings/category.html:29 +#: templates/InvenTree/settings/part.html:44 msgid "New Parameter" msgstr "Neuer Parameter" -#: part/templates/part/params.html:28 report/templates/report/inventree_test_report_base.html:90 -#: stock/models.py:1650 templates/InvenTree/settings/header.html:8 templates/js/stock.js:124 +#: part/templates/part/params.html:28 +#: report/templates/report/inventree_test_report_base.html:90 +#: stock/models.py:1650 templates/InvenTree/settings/header.html:8 +#: templates/js/stock.js:124 msgid "Value" msgstr "Wert" @@ -3517,7 +3777,7 @@ msgid "Edit" msgstr "Bearbeiten" #: part/templates/part/params.html:44 part/templates/part/related.html:44 -#: part/templates/part/supplier.html:22 users/models.py:168 +#: part/templates/part/supplier.html:22 users/models.py:170 msgid "Delete" msgstr "Löschen" @@ -3529,8 +3789,8 @@ msgstr "Teileliste" msgid "This part is a variant of" msgstr "Dieses Teil ist eine Variante von" -#: part/templates/part/part_base.html:32 templates/js/company.js:155 templates/js/part.js:75 -#: templates/js/part.js:152 +#: part/templates/part/part_base.html:32 templates/js/company.js:155 +#: templates/js/part.js:75 templates/js/part.js:152 msgid "Inactive" msgstr "Inaktiv" @@ -3538,17 +3798,20 @@ msgstr "Inaktiv" msgid "Star this part" msgstr "Teil favorisieren" -#: part/templates/part/part_base.html:46 stock/templates/stock/item_base.html:127 +#: part/templates/part/part_base.html:46 +#: stock/templates/stock/item_base.html:127 #: stock/templates/stock/location.html:44 msgid "Barcode actions" msgstr "Barcode Aktionen" -#: part/templates/part/part_base.html:48 stock/templates/stock/item_base.html:129 +#: part/templates/part/part_base.html:48 +#: stock/templates/stock/item_base.html:129 #: stock/templates/stock/location.html:46 msgid "Show QR Code" msgstr "QR-Code anzeigen" -#: part/templates/part/part_base.html:49 stock/templates/stock/item_base.html:145 +#: part/templates/part/part_base.html:49 +#: stock/templates/stock/item_base.html:145 #: stock/templates/stock/location.html:47 msgid "Print Label" msgstr "Label drucken" @@ -3577,7 +3840,7 @@ msgstr "Teil bearbeiten" msgid "Delete part" msgstr "Teil löschen" -#: part/templates/part/part_base.html:122 templates/js/table_filters.js:129 +#: part/templates/part/part_base.html:122 templates/js/table_filters.js:134 msgid "In Stock" msgstr "Auf Lager" @@ -3605,14 +3868,10 @@ msgstr "Im Bau" msgid "Add Test Template" msgstr "Test Vorlage hinzufügen" -#: part/templates/part/part_thumb.html:16 +#: part/templates/part/part_thumb.html:20 msgid "Select from existing images" msgstr "Aus vorhandenen Bildern auswählen" -#: part/templates/part/part_thumb.html:17 -msgid "Upload new image" -msgstr "Neues Bild hochladen" - #: part/templates/part/related.html:18 msgid "Add Related" msgstr "Zugehöriges Teil hinzufügen" @@ -3645,7 +3904,8 @@ msgstr "Teilbestand" msgid "Showing stock for all variants of" msgstr "Lagerbestand aller Varianten von" -#: part/templates/part/stock_count.html:7 templates/js/bom.js:239 templates/js/part.js:421 +#: part/templates/part/stock_count.html:7 templates/js/bom.js:239 +#: templates/js/part.js:421 msgid "No Stock" msgstr "Kein Bestand" @@ -3697,287 +3957,296 @@ msgstr "Neue Variante anlegen" msgid "New Variant" msgstr "neue Variante anlegen" -#: part/views.py:84 +#: part/views.py:89 msgid "Add Related Part" msgstr "zugeordnetes Teil hinzufügen" -#: part/views.py:139 +#: part/views.py:144 msgid "Delete Related Part" msgstr "zugeordnetes Teil entfernen" -#: part/views.py:153 +#: part/views.py:158 msgid "Add part attachment" msgstr "Teilanhang hinzufügen" -#: part/views.py:206 templates/attachment_table.html:32 +#: part/views.py:211 templates/attachment_table.html:32 msgid "Edit attachment" msgstr "Anhang bearbeiten" -#: part/views.py:210 +#: part/views.py:215 msgid "Part attachment updated" msgstr "Teilanhang aktualisiert" -#: part/views.py:225 +#: part/views.py:230 msgid "Delete Part Attachment" msgstr "Teilanhang löschen" -#: part/views.py:233 +#: part/views.py:238 msgid "Deleted part attachment" msgstr "Teilanhang gelöscht" -#: part/views.py:242 +#: part/views.py:247 msgid "Create Test Template" msgstr "Testvorlage anlegen" -#: part/views.py:269 +#: part/views.py:274 msgid "Edit Test Template" msgstr "Testvorlage bearbeiten" -#: part/views.py:283 +#: part/views.py:288 msgid "Delete Test Template" msgstr "Testvorlage löschen" -#: part/views.py:290 +#: part/views.py:295 msgid "Set Part Category" msgstr "Teilkategorie auswählen" -#: part/views.py:340 +#: part/views.py:345 #, python-brace-format msgid "Set category for {n} parts" msgstr "Kategorie für {n} Teile setzen" -#: part/views.py:375 +#: part/views.py:380 msgid "Create Variant" msgstr "Variante anlegen" -#: part/views.py:460 +#: part/views.py:465 msgid "Copied part" msgstr "Teil kopiert" -#: part/views.py:514 part/views.py:652 +#: part/views.py:519 part/views.py:657 msgid "Possible matches exist - confirm creation of new part" msgstr "Übereinstimmung gefunden - Teil trotzdem anlegen" -#: part/views.py:584 +#: part/views.py:589 msgid "Created new part" msgstr "Neues Teil angelegt" -#: part/views.py:820 +#: part/views.py:825 msgid "Part QR Code" msgstr "Teil-QR-Code" -#: part/views.py:839 +#: part/views.py:927 msgid "Upload Part Image" msgstr "Teilbild hochladen" -#: part/views.py:845 part/views.py:880 +#: part/views.py:933 part/views.py:968 msgid "Updated part image" msgstr "Teilbild aktualisiert" -#: part/views.py:854 +#: part/views.py:942 msgid "Select Part Image" msgstr "Teilbild auswählen" -#: part/views.py:883 +#: part/views.py:971 msgid "Part image not found" msgstr "Teilbild nicht gefunden" -#: part/views.py:894 +#: part/views.py:982 msgid "Edit Part Properties" msgstr "Teileigenschaften bearbeiten" -#: part/views.py:923 +#: part/views.py:1017 msgid "Duplicate BOM" msgstr "Stückliste duplizieren" -#: part/views.py:953 +#: part/views.py:1047 msgid "Confirm duplication of BOM from parent" msgstr "bestätige Duplizierung Stückliste von übergeordneter Stückliste" -#: part/views.py:974 +#: part/views.py:1068 msgid "Validate BOM" msgstr "Stückliste überprüfen" -#: part/views.py:995 +#: part/views.py:1089 msgid "Confirm that the BOM is valid" msgstr "Bestätigen, dass Stückliste korrekt ist" -#: part/views.py:1006 +#: part/views.py:1100 msgid "Validated Bill of Materials" msgstr "überprüfte Stückliste" -#: part/views.py:1140 +#: part/views.py:1234 msgid "No BOM file provided" msgstr "Keine Stückliste angegeben" -#: part/views.py:1488 +#: part/views.py:1595 msgid "Enter a valid quantity" msgstr "Bitte eine gültige Anzahl eingeben" -#: part/views.py:1513 part/views.py:1516 +#: part/views.py:1620 part/views.py:1623 msgid "Select valid part" msgstr "Bitte ein gültiges Teil auswählen" -#: part/views.py:1522 +#: part/views.py:1629 msgid "Duplicate part selected" msgstr "Teil doppelt ausgewählt" -#: part/views.py:1560 +#: part/views.py:1667 msgid "Select a part" msgstr "Teil auswählen" -#: part/views.py:1566 +#: part/views.py:1673 msgid "Selected part creates a circular BOM" msgstr "gewähltes Teil erzeugt rekursive Stückliste" -#: part/views.py:1570 +#: part/views.py:1677 msgid "Specify quantity" msgstr "Anzahl angeben" -#: part/views.py:1826 +#: part/views.py:1933 msgid "Confirm Part Deletion" msgstr "Löschen des Teils bestätigen" -#: part/views.py:1833 +#: part/views.py:1940 msgid "Part was deleted" msgstr "Teil wurde gelöscht" -#: part/views.py:1842 +#: part/views.py:1949 msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:1956 +#: part/views.py:2063 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:1966 +#: part/views.py:2073 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:1973 +#: part/views.py:2080 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:1981 +#: part/views.py:2088 msgid "Create Part Parameter" msgstr "Teilparameter anlegen" -#: part/views.py:2031 +#: part/views.py:2138 msgid "Edit Part Parameter" msgstr "Teilparameter bearbeiten" -#: part/views.py:2045 +#: part/views.py:2152 msgid "Delete Part Parameter" msgstr "Teilparameter löschen" -#: part/views.py:2105 +#: part/views.py:2212 msgid "Edit Part Category" msgstr "Teilkategorie bearbeiten" -#: part/views.py:2143 +#: part/views.py:2250 msgid "Delete Part Category" msgstr "Teilkategorie löschen" -#: part/views.py:2149 +#: part/views.py:2256 msgid "Part category was deleted" msgstr "Teilekategorie wurde gelöscht" -#: part/views.py:2201 +#: part/views.py:2308 msgid "Create Category Parameter Template" msgstr "Kategorieparametervorlage anlegen" -#: part/views.py:2302 +#: part/views.py:2409 msgid "Edit Category Parameter Template" msgstr "Kategorieparametervorlage bearbeiten" -#: part/views.py:2358 +#: part/views.py:2465 msgid "Delete Category Parameter Template" msgstr "Kategorieparametervorlage löschen" -#: part/views.py:2377 +#: part/views.py:2484 msgid "Create BOM Item" msgstr "Stücklisten-Position anlegen" -#: part/views.py:2447 +#: part/views.py:2554 msgid "Edit BOM item" msgstr "Stücklisten-Position bearbeiten" -#: part/views.py:2503 +#: part/views.py:2610 msgid "Confim BOM item deletion" msgstr "löschen von Stücklisten-Position bestätigen" -#: report/models.py:163 +#: report/models.py:180 msgid "Template name" msgstr "Vorlagen Name" -#: report/models.py:169 +#: report/models.py:186 msgid "Report template file" msgstr "Report Vorlage Datei" -#: report/models.py:176 +#: report/models.py:193 msgid "Report template description" msgstr "Report Vorlage Beschreibung" -#: report/models.py:182 +#: report/models.py:199 msgid "Report revision number (auto-increments)" msgstr "Report Revisionsnummer (autom. erhöht)" -#: report/models.py:258 +#: report/models.py:275 msgid "Report template is enabled" msgstr "Report Vorlage ist ein" -#: report/models.py:278 +#: report/models.py:295 msgid "StockItem query filters (comma-separated list of key=value pairs)" -msgstr "" +msgstr "BestandsObjekte-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:286 +#: report/models.py:303 msgid "Include Installed Tests" msgstr "einfügen Installiert in Tests" -#: report/models.py:287 +#: report/models.py:304 msgid "Include test results for stock items installed inside assembled item" msgstr "Test-Ergebnisse für BestandsObjekte in Baugruppen einschließen" -#: report/models.py:330 +#: report/models.py:347 msgid "Build Filters" msgstr "Bau Filter" -#: report/models.py:331 +#: report/models.py:348 msgid "Build query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "Bau-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:368 +#: report/models.py:385 msgid "Part Filters" msgstr "Teil Filter" -#: report/models.py:369 +#: report/models.py:386 msgid "Part query filters (comma-separated list of key=value pairs" -msgstr "" +msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:415 +#: report/models.py:416 +msgid "Purchase order query filters" +msgstr "Bestellungs-Abfragefilter" + +#: report/models.py:450 +msgid "Sales order query filters" +msgstr "Auftrags-Abfragefilter" + +#: report/models.py:500 msgid "Report snippet file" -msgstr "" +msgstr "Berichts-Snippet" -#: report/models.py:419 -#, fuzzy -#| msgid "Settings description" +#: report/models.py:504 msgid "Snippet file description" -msgstr "Einstellungs-Beschreibung" +msgstr "Snippet-Beschreibung" -#: report/models.py:454 +#: report/models.py:539 msgid "Report asset file" -msgstr "" +msgstr "Berichts-Ressource" -#: report/models.py:457 -#, fuzzy -#| msgid "Settings description" +#: report/models.py:542 msgid "Asset file description" -msgstr "Einstellungs-Beschreibung" +msgstr "Ressource-Beschreibung" -#: report/templates/report/inventree_build_order_base.html:150 +#: report/templates/report/inventree_build_order_base.html:147 msgid "Required For" msgstr "benötigt für" +#: report/templates/report/inventree_po_report.html:85 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "Positionen" + #: report/templates/report/inventree_test_report_base.html:21 msgid "Stock Item Test Report" msgstr "BestandsObjekt Test-Bericht" @@ -3986,16 +4255,18 @@ msgstr "BestandsObjekt Test-Bericht" msgid "Test Results" msgstr "Testergebnisse" -#: report/templates/report/inventree_test_report_base.html:88 stock/models.py:1638 +#: report/templates/report/inventree_test_report_base.html:88 +#: stock/models.py:1638 msgid "Test" msgstr "Test" -#: report/templates/report/inventree_test_report_base.html:89 stock/models.py:1644 +#: report/templates/report/inventree_test_report_base.html:89 +#: stock/models.py:1644 msgid "Result" msgstr "Ergebnis" -#: report/templates/report/inventree_test_report_base.html:92 templates/js/order.js:195 -#: templates/js/stock.js:905 +#: report/templates/report/inventree_test_report_base.html:92 +#: templates/js/order.js:195 templates/js/stock.js:905 msgid "Date" msgstr "Datum" @@ -4090,7 +4361,8 @@ msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein" #: stock/models.py:287 msgid "Serial number cannot be set if quantity greater than 1" -msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist" +msgstr "" +"Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist" #: stock/models.py:309 msgid "Item cannot belong to itself" @@ -4098,11 +4370,11 @@ msgstr "Teil kann nicht zu sich selbst gehören" #: stock/models.py:315 msgid "Item must have a build reference if is_building=True" -msgstr "" +msgstr "Teil muss eine Referenz haben wenn is_building wahr ist" #: stock/models.py:322 msgid "Build reference does not point to the same part object" -msgstr "" +msgstr "Referenz verweist nicht auf das gleiche Teil" #: stock/models.py:362 msgid "Parent Stock Item" @@ -4168,19 +4440,24 @@ msgstr "Bestellung für dieses BestandsObjekt" msgid "Destination Sales Order" msgstr "Ziel-Auftrag" -#: stock/models.py:472 stock/templates/stock/item_base.html:343 templates/js/stock.js:652 +#: stock/models.py:472 stock/templates/stock/item_base.html:343 +#: templates/js/stock.js:652 msgid "Expiry Date" msgstr "Ablaufdatum" #: stock/models.py:473 -msgid "Expiry date for stock item. Stock will be considered expired after this date" -msgstr "Ablaufdatum für BestandsObjekt. Bestand wird danach als abgelaufen gekennzeichnet" +msgid "" +"Expiry date for stock item. Stock will be considered expired after this date" +msgstr "" +"Ablaufdatum für BestandsObjekt. Bestand wird danach als abgelaufen " +"gekennzeichnet" #: stock/models.py:486 msgid "Delete this Stock Item when stock is depleted" msgstr "Dieses BestandsObjekt löschen wenn Bestand aufgebraucht" -#: stock/models.py:496 stock/templates/stock/item_notes.html:13 stock/templates/stock/navbar.html:54 +#: stock/models.py:496 stock/templates/stock/item_notes.html:13 +#: stock/templates/stock/navbar.html:54 msgid "Stock Item Notes" msgstr "BestandsObjekt-Notizen" @@ -4282,7 +4559,7 @@ msgstr "Anhang muss für diesen Test hochgeladen werden" msgid "Test name" msgstr "Name des Tests" -#: stock/models.py:1645 templates/js/table_filters.js:185 +#: stock/models.py:1645 templates/js/table_filters.js:190 msgid "Test result" msgstr "Testergebnis" @@ -4315,12 +4592,17 @@ msgid "Stock Item Attachments" msgstr "BestandsObjekt-Anhang" #: stock/templates/stock/item_base.html:24 -msgid "You are not in the list of owners of this item. This stock item cannot be edited." -msgstr "Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht ändern." +msgid "" +"You are not in the list of owners of this item. This stock item cannot be " +"edited." +msgstr "" +"Sie gehören nicht zu den Eigentümern dieses Objekts und können es nicht " +"ändern." #: stock/templates/stock/item_base.html:31 msgid "This stock item is in production and cannot be edited." -msgstr "Dieses BestandsObjekt wird gerade hergestellt und kann nicht geändert werden." +msgstr "" +"Dieses BestandsObjekt wird gerade hergestellt und kann nicht geändert werden." #: stock/templates/stock/item_base.html:32 msgid "Edit the stock item from the build view." @@ -4339,30 +4621,36 @@ msgid "This stock item is allocated to Build" msgstr "Dieses BestandsObjekt ist dem Bau zugewiesen" #: stock/templates/stock/item_base.html:63 -msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +msgid "" +"This stock item is serialized - it has a unique serial number and the " +"quantity cannot be adjusted." msgstr "" -"Dieses BestandsObjekt ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht " -"angepasst werden." +"Dieses BestandsObjekt ist serialisiert. Es hat eine eindeutige Seriennummer " +"und die Anzahl kann nicht angepasst werden." #: stock/templates/stock/item_base.html:67 msgid "This stock item cannot be deleted as it has child items" msgstr "Dieses BestandsObjekt kann nicht gelöscht werden, da es Kinder besitzt" #: stock/templates/stock/item_base.html:71 -msgid "This stock item will be automatically deleted when all stock is depleted." -msgstr "Dieses BestandsObjekt wird automatisch gelöscht wenn der Lagerbestand aufgebraucht ist." +msgid "" +"This stock item will be automatically deleted when all stock is depleted." +msgstr "" +"Dieses BestandsObjekt wird automatisch gelöscht wenn der Lagerbestand " +"aufgebraucht ist." -#: stock/templates/stock/item_base.html:91 stock/templates/stock/item_base.html:347 -#: templates/js/table_filters.js:118 +#: stock/templates/stock/item_base.html:91 +#: stock/templates/stock/item_base.html:347 templates/js/table_filters.js:123 msgid "Expired" msgstr "abgelaufen" -#: stock/templates/stock/item_base.html:95 stock/templates/stock/item_base.html:349 -#: templates/js/table_filters.js:123 +#: stock/templates/stock/item_base.html:95 +#: stock/templates/stock/item_base.html:349 templates/js/table_filters.js:128 msgid "Stale" msgstr "überfällig" -#: stock/templates/stock/item_base.html:132 templates/js/barcode.js:309 templates/js/barcode.js:314 +#: stock/templates/stock/item_base.html:132 templates/js/barcode.js:309 +#: templates/js/barcode.js:314 msgid "Unlink Barcode" msgstr "Barcode abhängen" @@ -4378,7 +4666,8 @@ msgstr "zu Lagerort einscannen" msgid "Printing actions" msgstr "Druck Aktionen" -#: stock/templates/stock/item_base.html:147 stock/templates/stock/item_tests.html:27 +#: stock/templates/stock/item_base.html:147 +#: stock/templates/stock/item_tests.html:27 msgid "Test Report" msgstr "Test Report" @@ -4386,8 +4675,8 @@ msgstr "Test Report" msgid "Stock adjustment actions" msgstr "Bestands-Anpassungs Aktionen" -#: stock/templates/stock/item_base.html:160 stock/templates/stock/location.html:58 -#: templates/stock_table.html:55 +#: stock/templates/stock/item_base.html:160 +#: stock/templates/stock/location.html:58 templates/stock_table.html:55 msgid "Count stock" msgstr "Bestand zählen" @@ -4423,7 +4712,8 @@ msgstr "BestandsObjekt deinstallieren" msgid "Uninstall" msgstr "Deinstallieren" -#: stock/templates/stock/item_base.html:186 stock/templates/stock/location.html:55 +#: stock/templates/stock/item_base.html:186 +#: stock/templates/stock/location.html:55 msgid "Stock actions" msgstr "Bestands-Aktionen" @@ -4455,8 +4745,8 @@ msgstr "Kein Lagerort gesetzt" msgid "Barcode Identifier" msgstr "Barcode-Bezeichner" -#: stock/templates/stock/item_base.html:296 templates/InvenTree/search.html:167 templates/js/build.js:655 -#: templates/navbar.html:29 +#: stock/templates/stock/item_base.html:296 templates/InvenTree/search.html:167 +#: templates/js/build.js:655 templates/navbar.html:29 msgid "Build" msgstr "Bau" @@ -4502,17 +4792,22 @@ msgstr "Ein weiteres BestandsObjekt in dieses Teil installiert" #: stock/templates/stock/item_install.html:10 msgid "Stock items can only be installed if they meet the following criteria" -msgstr "BestandsObjekte können nur installiert werden wenn folgende Kriterien erfüllt werden" +msgstr "" +"BestandsObjekte können nur installiert werden wenn folgende Kriterien " +"erfüllt werden" #: stock/templates/stock/item_install.html:13 msgid "The StockItem links to a Part which is in the BOM for this StockItem" -msgstr "Das BestandsObjekt ist auf ein Teil verknüpft das in der Stückliste für dieses BestandsObjekt ist" +msgstr "" +"Das BestandsObjekt ist auf ein Teil verknüpft das in der Stückliste für " +"dieses BestandsObjekt ist" #: stock/templates/stock/item_install.html:14 msgid "The StockItem is currently in stock" msgstr "Dieses BestandsObjekt ist aktuell vorhanden" -#: stock/templates/stock/item_installed.html:11 stock/templates/stock/navbar.html:27 +#: stock/templates/stock/item_installed.html:11 +#: stock/templates/stock/navbar.html:27 msgid "Installed Stock Items" msgstr "Installierte BestandsObjekte" @@ -4524,8 +4819,8 @@ msgstr "Teile mit Seriennummern von diesem BestandObjekt anlegen." msgid "Select quantity to serialize, and unique serial numbers." msgstr "Zu serialisierende Anzahl und eindeutige Seriennummern angeben." -#: stock/templates/stock/item_tests.html:11 stock/templates/stock/navbar.html:19 -#: stock/templates/stock/navbar.html:22 +#: stock/templates/stock/item_tests.html:11 +#: stock/templates/stock/navbar.html:19 stock/templates/stock/navbar.html:22 msgid "Test Data" msgstr "Testdaten" @@ -4538,8 +4833,12 @@ msgid "Add Test Data" msgstr "Testdaten hinzufügen" #: stock/templates/stock/location.html:13 -msgid "You are not in the list of owners of this location. This stock location cannot be edited." -msgstr "Sie sind nciht auf der Liste der Besizer dieses Lagerorts. Der Bestands-Lagerort kann nicht verändert werden." +msgid "" +"You are not in the list of owners of this location. This stock location " +"cannot be edited." +msgstr "" +"Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands-" +"Lagerort kann nicht verändert werden." #: stock/templates/stock/location.html:30 msgid "All stock items" @@ -4581,8 +4880,8 @@ msgstr "Unter-Lagerorte" msgid "Stock Details" msgstr "Objekt-Details" -#: stock/templates/stock/location.html:110 templates/InvenTree/search.html:263 templates/stats.html:52 -#: users/models.py:34 +#: stock/templates/stock/location.html:110 templates/InvenTree/search.html:263 +#: templates/stats.html:52 users/models.py:34 msgid "Stock Locations" msgstr "Bestand-Lagerorte" @@ -4640,7 +4939,7 @@ msgstr "BestandsObjekt ist aktuell eine Instanz von" #: stock/templates/stock/stockitem_convert.html:9 msgid "It can be converted to one of the part variants listed below." -msgstr "" +msgstr "Es kann in eine der folgenden Varianten konvertiert werden." #: stock/templates/stock/stockitem_convert.html:14 msgid "This action cannot be easily undone" @@ -4650,7 +4949,8 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden" msgid "Edit Stock Location" msgstr "BestandsObjekt-Lagerort bearbeiten" -#: stock/views.py:230 stock/views.py:1321 stock/views.py:1432 stock/views.py:1797 +#: stock/views.py:230 stock/views.py:1321 stock/views.py:1432 +#: stock/views.py:1797 msgid "Owner is required (ownership control is enabled)" msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)" @@ -4848,7 +5148,7 @@ msgstr "Seite existiert nicht" #: templates/InvenTree/index.html:6 msgid "Index" -msgstr "" +msgstr "Index" #: templates/InvenTree/index.html:97 msgid "Starred Parts" @@ -4860,7 +5160,7 @@ msgstr "neueste Teile" #: templates/InvenTree/index.html:99 msgid "BOM Waiting Validation" -msgstr "Stückliste erwartet Validierung" +msgstr "Stücklisten erwartet Validierung" #: templates/InvenTree/index.html:128 msgid "Recently Updated" @@ -4880,7 +5180,7 @@ msgstr "laufende Bauaufträge" #: templates/InvenTree/index.html:183 msgid "Overdue Build Orders" -msgstr "verspätete Bauaufträge" +msgstr "überfällige Bauaufträge" #: templates/InvenTree/index.html:204 msgid "Outstanding Purchase Orders" @@ -4934,11 +5234,13 @@ msgstr "Keine Kategorie-Parametervorlagen gefunden" msgid "Default Value" msgstr "Standard-Wert" -#: templates/InvenTree/settings/category.html:70 templates/InvenTree/settings/part.html:80 +#: templates/InvenTree/settings/category.html:70 +#: templates/InvenTree/settings/part.html:81 msgid "Edit Template" msgstr "Vorlage bearbeiten" -#: templates/InvenTree/settings/category.html:71 templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/category.html:71 +#: templates/InvenTree/settings/part.html:82 msgid "Delete Template" msgstr "Vorlage löschen" @@ -4946,7 +5248,7 @@ msgstr "Vorlage löschen" msgid "Global InvenTree Settings" msgstr "Systemweite InvenTree-Einstellungen" -#: templates/InvenTree/settings/global.html:25 +#: templates/InvenTree/settings/global.html:26 msgid "Barcode Settings" msgstr "Barcode-Einstellungen" @@ -4962,11 +5264,11 @@ msgstr "Teil-Einstellungen" msgid "Part Options" msgstr "Teil-Optionen" -#: templates/InvenTree/settings/part.html:39 +#: templates/InvenTree/settings/part.html:40 msgid "Part Parameter Templates" -msgstr "Teil-Üarametervorlage" +msgstr "Teil-Parametervorlage" -#: templates/InvenTree/settings/part.html:60 +#: templates/InvenTree/settings/part.html:61 msgid "No part parameter templates found" msgstr "Keine Teilparametervorlagen gefunden" @@ -4986,8 +5288,8 @@ msgstr "Kein Wert angegeben" msgid "Edit setting" msgstr "Einstellungen ändern" -#: templates/InvenTree/settings/settings.html:7 templates/InvenTree/settings/settings.html:13 -#: templates/navbar.html:76 +#: templates/InvenTree/settings/settings.html:7 +#: templates/InvenTree/settings/settings.html:13 templates/navbar.html:76 msgid "Settings" msgstr "Einstellungen" @@ -5003,7 +5305,8 @@ msgstr "Bestands-Einstellungen" msgid "Stock Options" msgstr "Stock-Optionen" -#: templates/InvenTree/settings/tabs.html:3 templates/InvenTree/settings/user.html:10 +#: templates/InvenTree/settings/tabs.html:3 +#: templates/InvenTree/settings/user.html:10 msgid "User Settings" msgstr "Benutzer-Einstellungen" @@ -5021,7 +5324,7 @@ msgstr "InvenTree-Einstellungen" #: templates/InvenTree/settings/tabs.html:16 msgid "Global" -msgstr "" +msgstr "Global" #: templates/InvenTree/settings/tabs.html:19 msgid "Report" @@ -5043,11 +5346,16 @@ msgstr "Farbschemata" #, python-format msgid "" "\n" -"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found." -"
\n" +"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected " +"color theme was not found.
\n" "\t\tPlease select another color theme :)\n" "\t" msgstr "" +"\n" +"\t\tDie CSS Datei \"%(invalid_color_theme)s.css\" für das aktuell " +"ausgewählte Farbschema wurde nicht gefunden.
\n" +"\t\tBitte ein anderes Farbschema auswählen:)\n" +"\t" #: templates/InvenTree/settings/user.html:16 msgid "User Information" @@ -5057,7 +5365,8 @@ msgstr "Benutzerinformation" msgid "Change Password" msgstr "Passwort ändern" -#: templates/InvenTree/settings/user.html:28 templates/registration/login.html:58 +#: templates/InvenTree/settings/user.html:28 +#: templates/registration/login.html:58 msgid "Username" msgstr "Benutzername" @@ -5129,6 +5438,22 @@ msgstr "Hochgeladen" msgid "Delete attachment" msgstr "Anhang löschen" +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "URL für Bild-Donwload angeben" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "Muss eine gültige URL für ein Bild sein" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "Der angegebene Server muss erreichbar sein" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein" + #: templates/js/barcode.js:8 msgid "Scan barcode data here using wedge scanner" msgstr "Hier den Barcode scannen" @@ -5143,7 +5468,7 @@ msgstr "Barcode" #: templates/js/barcode.js:32 msgid "Enter optional notes for stock transfer" -msgstr "" +msgstr "Optionale Notizen zu Bestandsübertragung eingeben" #: templates/js/barcode.js:33 msgid "Enter notes" @@ -5157,9 +5482,9 @@ msgstr "Server-Fehler" msgid "Unknown response from server" msgstr "Unbekannte Antwort von Server erhalten" -#: templates/js/barcode.js:119 templates/js/modals.js:856 +#: templates/js/barcode.js:119 templates/js/modals.js:857 msgid "Invalid server response" -msgstr "" +msgstr "Ungültige Antwort von Server" #: templates/js/barcode.js:212 msgid "Scan barcode data below" @@ -5174,8 +5499,11 @@ msgid "Link Barcode to Stock Item" msgstr "Barcode mit BestandsObjekt verknüpfen" #: templates/js/barcode.js:311 -msgid "This will remove the association between this stock item and the barcode" -msgstr "Dadurch wird die Verknüpfung zwischen diesem BestandsObjekt und dem Barcode entfernt" +msgid "" +"This will remove the association between this stock item and the barcode" +msgstr "" +"Dadurch wird die Verknüpfung zwischen diesem BestandsObjekt und dem Barcode " +"entfernt" #: templates/js/barcode.js:317 msgid "Unlink" @@ -5191,7 +5519,7 @@ msgstr "BestandsObjekte in Lagerort buchen" #: templates/js/barcode.js:422 templates/js/barcode.js:547 msgid "Check In" -msgstr "" +msgstr "Einbuchen" #: templates/js/barcode.js:462 templates/js/barcode.js:586 msgid "Error transferring stock" @@ -5293,7 +5621,8 @@ msgstr "Anzahl pro" msgid "Build stock" msgstr "Baue Bestand" -#: templates/js/build.js:582 templates/js/build.js:996 templates/stock_table.html:57 +#: templates/js/build.js:582 templates/js/build.js:996 +#: templates/stock_table.html:57 msgid "Order stock" msgstr "Bestand bestellen" @@ -5305,7 +5634,8 @@ msgstr "Lagerbestand zuweisen" msgid "No builds matching query" msgstr "Keine Baue passen zur Anfrage" -#: templates/js/build.js:649 templates/js/part.js:323 templates/js/stock.js:512 templates/js/stock.js:1250 +#: templates/js/build.js:649 templates/js/part.js:323 templates/js/stock.js:512 +#: templates/js/stock.js:1250 msgid "Select" msgstr "Auswählen" @@ -5347,7 +5677,8 @@ msgstr "BestandsObjekte auswählen" #: templates/js/label.js:11 msgid "Stock item(s) must be selected before printing labels" -msgstr "BestandsObjekt(e) müssen ausgewählt sein bevor Labels gedruckt werden können" +msgstr "" +"BestandsObjekt(e) müssen ausgewählt sein bevor Labels gedruckt werden können" #: templates/js/label.js:29 templates/js/label.js:79 msgid "No Labels Found" @@ -5385,11 +5716,11 @@ msgstr "Label-Vorlage auswählen" msgid "Show Error Information" msgstr "Fehler-Informationen anzeigen" -#: templates/js/modals.js:473 templates/modals.html:66 +#: templates/js/modals.js:473 templates/modals.html:73 msgid "Accept" msgstr "Akzeptieren" -#: templates/js/modals.js:474 templates/modals.html:65 +#: templates/js/modals.js:474 templates/modals.html:72 msgid "Cancel" msgstr "abbrechen" @@ -5397,82 +5728,83 @@ msgstr "abbrechen" msgid "Loading Data" msgstr "Lade Daten" -#: templates/js/modals.js:549 templates/js/modals.js:807 templates/modals.html:22 templates/modals.html:46 +#: templates/js/modals.js:549 templates/js/modals.js:808 +#: templates/modals.html:29 templates/modals.html:53 msgid "Submit" msgstr "abschicken" -#: templates/js/modals.js:550 templates/js/modals.js:808 templates/modals.html:21 templates/modals.html:45 -#: templates/modals.html:84 +#: templates/js/modals.js:550 templates/js/modals.js:809 +#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93 msgid "Close" msgstr "Schliessen" -#: templates/js/modals.js:759 +#: templates/js/modals.js:760 msgid "Invalid response from server" msgstr "ungültige Antwort vom Server" -#: templates/js/modals.js:759 +#: templates/js/modals.js:760 msgid "Form data missing from server response" msgstr "Formulardaten fehlen bei Serverantwort" -#: templates/js/modals.js:772 +#: templates/js/modals.js:773 msgid "Error posting form data" msgstr "Formulardaten fehlerhaft" -#: templates/js/modals.js:856 +#: templates/js/modals.js:857 msgid "JSON response missing form data" -msgstr "" +msgstr "JSON Antwort enthält keine Formulardaten" -#: templates/js/modals.js:866 +#: templates/js/modals.js:867 msgid "No Response" msgstr "Keine Antwort" -#: templates/js/modals.js:867 +#: templates/js/modals.js:868 msgid "No response from the InvenTree server" msgstr "keine Antwort vom InvenTree Server" -#: templates/js/modals.js:871 -msgid "Error 400: Bad Request" -msgstr "" - #: templates/js/modals.js:872 -msgid "Server returned error code 400" -msgstr "" +msgid "Error 400: Bad Request" +msgstr "Fehler 400: Ungültige Anfrage" -#: templates/js/modals.js:876 -msgid "Error 401: Not Authenticated" -msgstr "" +#: templates/js/modals.js:873 +msgid "Server returned error code 400" +msgstr "Fehler 400 von Server erhalten" #: templates/js/modals.js:877 +msgid "Error 401: Not Authenticated" +msgstr "Fehler 401: Nicht Angemeldet" + +#: templates/js/modals.js:878 msgid "Authentication credentials not supplied" msgstr "Authentication Kredentials nicht angegeben" -#: templates/js/modals.js:881 -msgid "Error 403: Permission Denied" -msgstr "" - #: templates/js/modals.js:882 -msgid "You do not have the required permissions to access this function" -msgstr "" +msgid "Error 403: Permission Denied" +msgstr "Fehler 403: keine Berechtigung" -#: templates/js/modals.js:886 -msgid "Error 404: Resource Not Found" -msgstr "" +#: templates/js/modals.js:883 +msgid "You do not have the required permissions to access this function" +msgstr "Fehlende Berechtigung für diese Aktion" #: templates/js/modals.js:887 -msgid "The requested resource could not be located on the server" -msgstr "" +msgid "Error 404: Resource Not Found" +msgstr "Fehler 404: Ressource nicht gefunden" -#: templates/js/modals.js:891 -msgid "Error 408: Timeout" -msgstr "" +#: templates/js/modals.js:888 +msgid "The requested resource could not be located on the server" +msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden" #: templates/js/modals.js:892 +msgid "Error 408: Timeout" +msgstr "Fehler 408: Zeitüberschreitung" + +#: templates/js/modals.js:893 msgid "Connection timeout while requesting data from server" msgstr "Verbindungszeitüberschreitung bei der Datenanforderung" -#: templates/js/modals.js:895 +#: templates/js/modals.js:896 msgid "Error requesting form data" -msgstr "" +msgstr "Fehler bei Formulardaten-Anfrage" #: templates/js/order.js:138 msgid "No purchase orders found" @@ -5518,7 +5850,7 @@ msgstr "Keine Teile gefunden" msgid "No category" msgstr "Keine Kategorie" -#: templates/js/part.js:408 templates/js/table_filters.js:291 +#: templates/js/part.js:408 templates/js/table_filters.js:296 msgid "Low stock" msgstr "Bestand niedrig" @@ -5562,7 +5894,9 @@ msgstr "Test Report Vorlage auswählen" msgid "Stock item(s) must be selected before printing reports" msgstr "BestandsObjekt(e) müssen vor dem Reportdruck ausgewählt werden" -#: templates/js/report.js:116 templates/js/report.js:169 templates/js/report.js:223 +#: templates/js/report.js:116 templates/js/report.js:169 +#: templates/js/report.js:223 templates/js/report.js:277 +#: templates/js/report.js:331 msgid "No Reports Found" msgstr "Keine Reports gefunden" @@ -5594,6 +5928,26 @@ msgstr "Teil muss vor dem Reportdruck ausgewählt werden" msgid "No report templates found which match selected part(s)" msgstr "Keine Berichtvorlagen für ausgewählte Teile gefunden" +#: templates/js/report.js:259 +msgid "Select Purchase Orders" +msgstr "Bestellungen auswählen" + +#: templates/js/report.js:260 +msgid "Purchase Order(s) must be selected before printing report" +msgstr "Bestellung muss vor dem Reportdruck ausgewählt werden" + +#: templates/js/report.js:278 templates/js/report.js:332 +msgid "No report templates found which match selected orders" +msgstr "Keine Berichtvorlagen für ausgewählte Bestellungen gefunden" + +#: templates/js/report.js:313 +msgid "Select Sales Orders" +msgstr "Aufträge auswählen" + +#: templates/js/report.js:314 +msgid "Sales Order(s) must be selected before printing report" +msgstr "Auftrag muss vor dem Reportdruck ausgewählt werden" + #: templates/js/stock.js:38 msgid "PASS" msgstr "ERFOLGREICH" @@ -5678,7 +6032,7 @@ msgstr "BestandsObjekt verloren" msgid "Stock item is destroyed" msgstr "BestandsObjekt zerstört" -#: templates/js/stock.js:616 templates/js/table_filters.js:111 +#: templates/js/stock.js:616 templates/js/table_filters.js:116 msgid "Depleted" msgstr "gelöscht" @@ -5714,7 +6068,7 @@ msgstr "Neuen Lagerort anlegen" msgid "Serial" msgstr "Seriennummer" -#: templates/js/stock.js:1281 templates/js/table_filters.js:144 +#: templates/js/stock.js:1281 templates/js/table_filters.js:149 msgid "Installed" msgstr "Installiert" @@ -5730,36 +6084,36 @@ msgstr "nachverfolgbares Teil" msgid "Validated" msgstr "überprüft" -#: templates/js/table_filters.js:70 templates/js/table_filters.js:154 +#: templates/js/table_filters.js:70 templates/js/table_filters.js:159 msgid "Is Serialized" msgstr "ist mit Seriennummer" -#: templates/js/table_filters.js:73 templates/js/table_filters.js:161 +#: templates/js/table_filters.js:73 templates/js/table_filters.js:166 msgid "Serial number GTE" msgstr "Seriennummer >=" -#: templates/js/table_filters.js:74 templates/js/table_filters.js:162 +#: templates/js/table_filters.js:74 templates/js/table_filters.js:167 msgid "Serial number greater than or equal to" msgstr "Seriennummer größer oder gleich" -#: templates/js/table_filters.js:77 templates/js/table_filters.js:165 +#: templates/js/table_filters.js:77 templates/js/table_filters.js:170 msgid "Serial number LTE" msgstr "Seriennummer <=" -#: templates/js/table_filters.js:78 templates/js/table_filters.js:166 +#: templates/js/table_filters.js:78 templates/js/table_filters.js:171 msgid "Serial number less than or equal to" msgstr "Seriennummern kleiner oder gleich" -#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 templates/js/table_filters.js:157 -#: templates/js/table_filters.js:158 +#: templates/js/table_filters.js:81 templates/js/table_filters.js:82 +#: templates/js/table_filters.js:162 templates/js/table_filters.js:163 msgid "Serial number" msgstr "Seriennummer" -#: templates/js/table_filters.js:86 templates/js/table_filters.js:175 +#: templates/js/table_filters.js:86 templates/js/table_filters.js:180 msgid "Batch code" msgstr "Losnummer" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:258 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:263 msgid "Active parts" msgstr "Aktive Teile" @@ -5767,111 +6121,115 @@ msgstr "Aktive Teile" msgid "Show stock for active parts" msgstr "Bestand aktiver Teile anzeigen" -#: templates/js/table_filters.js:101 +#: templates/js/table_filters.js:102 +msgid "Part is an assembly" +msgstr "Teil ist eine Baugruppe" + +#: templates/js/table_filters.js:106 msgid "Is allocated" msgstr "Ist zugeordnet" -#: templates/js/table_filters.js:102 -msgid "Item has been alloacted" -msgstr "Position wurde zugeordnet" +#: templates/js/table_filters.js:107 +msgid "Item has been allocated" +msgstr "Teil wurde zugeordnet" -#: templates/js/table_filters.js:106 +#: templates/js/table_filters.js:111 msgid "Include sublocations" msgstr "Unter-Lagerorte einschließen" -#: templates/js/table_filters.js:107 +#: templates/js/table_filters.js:112 msgid "Include stock in sublocations" msgstr "Bestand in Unter-Lagerorten einschließen" -#: templates/js/table_filters.js:112 +#: templates/js/table_filters.js:117 msgid "Show stock items which are depleted" msgstr "Zeige aufgebrauchte BestandsObjekte" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:124 msgid "Show stock items which have expired" msgstr "Zeige abgelaufene BestandsObjekte" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:129 msgid "Show stock which is close to expiring" msgstr "Bestand, der bald ablaufen, anzeigen" -#: templates/js/table_filters.js:130 +#: templates/js/table_filters.js:135 msgid "Show items which are in stock" msgstr "Zeige Objekte welche im Lager sind" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:139 msgid "In Production" msgstr "In Arbeit" -#: templates/js/table_filters.js:135 +#: templates/js/table_filters.js:140 msgid "Show items which are in production" msgstr "Elemente, die in Produktion sind, anzeigen" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:144 msgid "Include Variants" msgstr "Varianten hinzufügen" -#: templates/js/table_filters.js:140 +#: templates/js/table_filters.js:145 msgid "Include stock items for variant parts" msgstr "BestandsObjekte für Teil-Varianten einschließen" -#: templates/js/table_filters.js:145 +#: templates/js/table_filters.js:150 msgid "Show stock items which are installed in another item" msgstr "BestandsObjekte, die in anderen Elementen verbaut sind, anzeigen" -#: templates/js/table_filters.js:149 +#: templates/js/table_filters.js:154 msgid "Sent to customer" msgstr "Zum Kunden geschickt" -#: templates/js/table_filters.js:150 +#: templates/js/table_filters.js:155 msgid "Show items which have been assigned to a customer" msgstr "zeige zu Kunden zugeordnete Einträge" -#: templates/js/table_filters.js:170 templates/js/table_filters.js:171 +#: templates/js/table_filters.js:175 templates/js/table_filters.js:176 msgid "Stock status" msgstr "Bestandsstatus" -#: templates/js/table_filters.js:204 +#: templates/js/table_filters.js:209 msgid "Build status" msgstr "Bau-Status" -#: templates/js/table_filters.js:223 templates/js/table_filters.js:240 +#: templates/js/table_filters.js:228 templates/js/table_filters.js:245 msgid "Order status" msgstr "Bestellstatus" -#: templates/js/table_filters.js:228 templates/js/table_filters.js:245 +#: templates/js/table_filters.js:233 templates/js/table_filters.js:250 msgid "Outstanding" msgstr "ausstehend" -#: templates/js/table_filters.js:268 +#: templates/js/table_filters.js:273 msgid "Include subcategories" msgstr "Unterkategorien einschließen" -#: templates/js/table_filters.js:269 +#: templates/js/table_filters.js:274 msgid "Include parts in subcategories" msgstr "Teile in Unterkategorien einschließen" -#: templates/js/table_filters.js:273 +#: templates/js/table_filters.js:278 msgid "Has IPN" msgstr "Hat IPN" -#: templates/js/table_filters.js:274 +#: templates/js/table_filters.js:279 msgid "Part has internal part number" msgstr "Teil hat Interne Teilenummer" -#: templates/js/table_filters.js:279 +#: templates/js/table_filters.js:284 msgid "Show active parts" msgstr "Aktive Teile anzeigen" -#: templates/js/table_filters.js:287 +#: templates/js/table_filters.js:292 msgid "Stock available" msgstr "verfügbarer Lagerbestand" -#: templates/js/table_filters.js:303 +#: templates/js/table_filters.js:308 msgid "Starred" msgstr "Favorit" -#: templates/js/table_filters.js:315 +#: templates/js/table_filters.js:320 msgid "Purchasable" msgstr "Käuflich" @@ -5899,7 +6257,8 @@ msgstr "von" msgid "rows" msgstr "Zeilen" -#: templates/js/tables.js:330 templates/search_form.html:6 templates/search_form.html:8 +#: templates/js/tables.js:330 templates/search_form.html:6 +#: templates/search_form.html:8 msgid "Search" msgstr "Suche" @@ -5927,7 +6286,7 @@ msgstr "Spalten" msgid "All" msgstr "Alle" -#: templates/modals.html:14 templates/modals.html:39 +#: templates/modals.html:21 templates/modals.html:46 msgid "Form errors exist" msgstr "Fehler in Formular" @@ -6099,39 +6458,39 @@ msgstr "Berechtigungen" msgid "Important dates" msgstr "wichtige Daten" -#: users/models.py:151 +#: users/models.py:153 msgid "Permission set" msgstr "Berechtigung geändert" -#: users/models.py:159 +#: users/models.py:161 msgid "Group" msgstr "Gruppe" -#: users/models.py:162 +#: users/models.py:164 msgid "View" msgstr "Ansicht" -#: users/models.py:162 +#: users/models.py:164 msgid "Permission to view items" msgstr "Berechtigung Einträge anzuzeigen" -#: users/models.py:164 +#: users/models.py:166 msgid "Add" msgstr "Hinzufügen" -#: users/models.py:164 +#: users/models.py:166 msgid "Permission to add items" msgstr "Berechtigung Einträge zu erstellen" -#: users/models.py:166 +#: users/models.py:168 msgid "Change" msgstr "Ändern" -#: users/models.py:166 +#: users/models.py:168 msgid "Permissions to edit items" msgstr "Berechtigungen Einträge zu ändern" -#: users/models.py:168 +#: users/models.py:170 msgid "Permission to delete items" msgstr "Berechtigung Einträge zu löschen" @@ -6153,11 +6512,6 @@ msgstr "Berechtigung Einträge zu löschen" #~ msgid "Must provide valid StockItem(s)" #~ msgstr "BestandsObjekt bewegen" -#, fuzzy -#~| msgid "Add Line Item" -#~ msgid "Line Items" -#~ msgstr "Position hinzufügen" - #~ msgid "Order Items" #~ msgstr "Bestellungspositionen" @@ -6338,8 +6692,11 @@ msgstr "Berechtigung Einträge zu löschen" #, fuzzy #~| msgid "No stock items found that can be allocated to this build" -#~ msgid "Where the following conditions are met, stock will be automatically allocated to this build" -#~ msgstr "Keine BestandsObjekt gefunden, die diesem Bau zugewiesen werden können" +#~ msgid "" +#~ "Where the following conditions are met, stock will be automatically " +#~ "allocated to this build" +#~ msgstr "" +#~ "Keine BestandsObjekt gefunden, die diesem Bau zugewiesen werden können" #, fuzzy #~| msgid "Part is not a virtual part" @@ -6360,10 +6717,11 @@ msgstr "Berechtigung Einträge zu löschen" #~ msgstr "Warnung: Bau-Zuweisung ist unvollständig" #~ msgid "" -#~ "Build Order has not been fully allocated. Ensure that all Stock Items have been allocated to the " -#~ "Build" +#~ "Build Order has not been fully allocated. Ensure that all Stock Items " +#~ "have been allocated to the Build" #~ msgstr "" -#~ "Bau-Zuweisung ist unvollständig. Sicherstellen, dass alle BestandsObjekt dem Bau zugewiesen wurden" +#~ "Bau-Zuweisung ist unvollständig. Sicherstellen, dass alle BestandsObjekt " +#~ "dem Bau zugewiesen wurden" #~ msgid "The following actions will be performed:" #~ msgstr "Die folgenden Aktionen werden ausgeführt:" @@ -6412,8 +6770,11 @@ msgstr "Berechtigung Einträge zu löschen" #~ msgstr "Eltern-Bau, dem dieser Bau zugewiesen ist" #~ msgid "" -#~ "Stock Items are selected for automatic allocation if there is only a single stock item available." -#~ msgstr "Teile werden automatisch zugewiesen, wenn nur ein BestandsObjekt verfügbar ist" +#~ "Stock Items are selected for automatic allocation if there is only a " +#~ "single stock item available." +#~ msgstr "" +#~ "Teile werden automatisch zugewiesen, wenn nur ein BestandsObjekt " +#~ "verfügbar ist" #~ msgid "Title" #~ msgstr "Titel" @@ -6497,11 +6858,12 @@ msgstr "Berechtigung Einträge zu löschen" #, fuzzy #~| msgid "" -#~| "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted." +#~| "This stock item is serialized - it has a unique serial number and the " +#~| "quantity cannot be adjusted." #~ msgid "Stock item is serialized and quantity cannot be adjusted" #~ msgstr "" -#~ "Dieses BestandsObjekt ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann " -#~ "nicht angepasst werden." +#~ "Dieses BestandsObjekt ist serialisiert. Es hat eine eindeutige " +#~ "Seriennummer und die Anzahl kann nicht angepasst werden." #~ msgid "Used for Build" #~ msgstr "Verwendet für Bau" @@ -6535,16 +6897,17 @@ msgstr "Berechtigung Einträge zu löschen" #~ msgstr "BestandsObjekt kopieren" #~ msgid "Part cannot be a variant of another part if it is already a template" -#~ msgstr "Teil kann keine Variante eines anderen Teils sein wenn es bereits eine Vorlage ist" +#~ msgstr "" +#~ "Teil kann keine Variante eines anderen Teils sein wenn es bereits eine " +#~ "Vorlage ist" #~ msgid "It is not a real part, but real parts can be based on this template." -#~ msgstr "Es ist kein echtes Teil, aber echte Teile können auf dieser Vorlage basieren." +#~ msgstr "" +#~ "Es ist kein echtes Teil, aber echte Teile können auf dieser Vorlage " +#~ "basieren." #~ msgid "Allocate" #~ msgstr "zuweisen" #~ msgid "Line" #~ msgstr "Position" - -#~ msgid "URL" -#~ msgstr "URL" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 178c537454..d229c67b45 100644 --- a/InvenTree/locale/en/LC_MESSAGES/django.po +++ b/InvenTree/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-09 11:11+0100\n" +"POT-Creation-Date: 2021-03-28 16:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -58,7 +58,7 @@ msgstr "" msgid "Select Category" msgstr "" -#: InvenTree/helpers.py:361 order/models.py:232 order/models.py:331 +#: InvenTree/helpers.py:361 order/models.py:242 order/models.py:341 #: stock/views.py:1762 msgid "Invalid quantity provided" msgstr "" @@ -106,7 +106,7 @@ msgid "User" msgstr "" #: InvenTree/models.py:106 label/models.py:101 part/models.py:685 -#: part/templates/part/params.html:27 report/models.py:162 +#: part/templates/part/params.html:27 report/models.py:179 #: templates/js/part.js:109 msgid "Name" msgstr "" @@ -172,7 +172,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:136 -#: order/templates/order/sales_order_base.html:121 +#: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" @@ -317,8 +317,8 @@ msgstr "" #: build/forms.py:85 build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:91 -#: build/templates/build/detail.html:31 common/models.py:682 -#: company/forms.py:112 company/templates/company/supplier_part_pricing.html:77 +#: build/templates/build/detail.html:31 common/models.py:696 +#: company/forms.py:130 company/templates/company/supplier_part_pricing.html:77 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:193 #: order/templates/order/sales_order_detail.html:77 @@ -326,11 +326,13 @@ msgstr "" #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 #: part/templates/part/sale_prices.html:85 -#: report/templates/report/inventree_build_order_base.html:117 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 #: stock/forms.py:307 stock/templates/stock/item_base.html:51 #: stock/templates/stock/item_base.html:57 -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:420 templates/js/build.js:954 #: templates/js/stock.js:952 templates/js/stock.js:1190 @@ -392,7 +394,7 @@ msgstr "" #: build/models.py:65 build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:35 #: part/templates/part/allocation.html:23 -#: report/templates/report/inventree_build_order_base.html:109 +#: report/templates/report/inventree_build_order_base.html:106 msgid "Build Order" msgstr "" @@ -411,7 +413,9 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:127 order/templates/order/purchase_order_detail.html:188 -#: templates/js/bom.js:197 templates/js/build.js:509 templates/js/build.js:948 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 +#: templates/js/build.js:509 templates/js/build.js:948 msgid "Reference" msgstr "" @@ -421,8 +425,8 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:31 label/models.py:108 #: order/templates/order/purchase_order_detail.html:168 part/models.py:709 #: part/templates/part/detail.html:54 part/templates/part/set_category.html:14 -#: report/models.py:175 -#: report/templates/report/inventree_build_order_base.html:121 +#: report/models.py:192 +#: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:208 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 #: templates/js/build.js:677 templates/js/build.js:944 @@ -448,14 +452,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:86 -#: build/templates/build/detail.html:26 order/models.py:652 +#: build/templates/build/detail.html:26 order/models.py:662 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:156 #: order/templates/order/receive_parts.html:19 part/models.py:320 #: part/templates/part/part_app_base.html:7 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: part/templates/part/subcategories.html:17 -#: report/templates/report/inventree_build_order_base.html:113 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:111 templates/InvenTree/search.html:194 #: templates/js/barcode.js:362 templates/js/bom.js:163 #: templates/js/build.js:681 templates/js/build.js:921 @@ -527,7 +533,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:223 order/models.py:437 +#: build/models.py:223 order/models.py:447 msgid "Target completion date" msgstr "" @@ -543,7 +549,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:77 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:100 -#: stock/models.py:423 stock/templates/stock/item_base.html:324 +#: stock/models.py:423 stock/templates/stock/item_base.html:330 msgid "External Link" msgstr "" @@ -560,7 +566,7 @@ msgstr "" #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:869 #: part/templates/part/navbar.html:122 -#: report/templates/report/inventree_build_order_base.html:176 +#: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:316 stock/forms.py:348 stock/forms.py:376 stock/models.py:495 #: stock/models.py:1663 stock/templates/stock/navbar.html:57 #: templates/js/barcode.js:37 templates/js/bom.js:329 templates/js/stock.js:128 @@ -606,11 +612,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1031 order/models.py:736 +#: build/models.py:1031 order/models.py:746 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1035 order/models.py:739 +#: build/models.py:1035 order/models.py:749 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -699,7 +705,7 @@ msgid "" msgstr "" #: build/templates/build/auto_allocate.html:18 stock/forms.py:346 -#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:270 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:244 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:434 @@ -724,7 +730,7 @@ msgid "This Build Order is a child of Build Order" msgstr "" #: build/templates/build/build_base.html:37 -#: company/templates/company/company_base.html:27 +#: company/templates/company/company_base.html:40 #: company/templates/company/supplier_part_base.html:25 #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 @@ -737,11 +743,11 @@ msgstr "" #: build/templates/build/build_base.html:43 #: build/templates/build/build_base.html:108 #: order/templates/order/order_base.html:32 -#: order/templates/order/order_base.html:83 +#: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 -#: order/templates/order/sales_order_base.html:83 -#: templates/js/table_filters.js:213 templates/js/table_filters.js:232 -#: templates/js/table_filters.js:249 +#: order/templates/order/sales_order_base.html:86 +#: templates/js/table_filters.js:218 templates/js/table_filters.js:237 +#: templates/js/table_filters.js:254 msgid "Overdue" msgstr "" @@ -777,7 +783,7 @@ msgstr "" #: build/templates/build/build_base.html:96 #: build/templates/build/detail.html:59 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:370 templates/InvenTree/search.html:236 +#: stock/templates/stock/item_base.html:376 templates/InvenTree/search.html:236 #: templates/js/barcode.js:119 templates/js/build.js:710 #: templates/js/order.js:187 templates/js/order.js:285 #: templates/js/stock.js:624 templates/js/stock.js:1198 @@ -786,9 +792,9 @@ msgstr "" #: build/templates/build/build_base.html:104 #: build/templates/build/detail.html:121 -#: order/templates/order/order_base.html:121 -#: order/templates/order/sales_order_base.html:114 -#: report/templates/report/inventree_build_order_base.html:129 +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:117 +#: report/templates/report/inventree_build_order_base.html:126 #: templates/js/build.js:723 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" @@ -804,25 +810,28 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:84 order/models.py:650 +#: build/templates/build/detail.html:84 order/models.py:660 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 -#: report/templates/report/inventree_build_order_base.html:139 -#: stock/templates/stock/item_base.html:258 templates/js/order.js:245 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:264 templates/js/order.js:245 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:135 #: build/templates/build/detail.html:98 -#: report/templates/report/inventree_build_order_base.html:156 +#: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:105 -#: report/templates/report/inventree_build_order_base.html:162 +#: build/templates/build/detail.html:105 order/models.py:118 +#: order/templates/order/order_base.html:138 +#: order/templates/order/sales_order_base.html:138 +#: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "" @@ -929,15 +938,15 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:282 templates/js/stock.js:632 +#: stock/templates/stock/item_base.html:288 templates/js/stock.js:632 #: templates/js/stock.js:1205 templates/js/table_filters.js:85 -#: templates/js/table_filters.js:174 +#: templates/js/table_filters.js:179 msgid "Batch" msgstr "" #: build/templates/build/detail.html:116 -#: order/templates/order/order_base.html:108 -#: order/templates/order/sales_order_base.html:108 templates/js/build.js:718 +#: order/templates/order/order_base.html:111 +#: order/templates/order/sales_order_base.html:111 templates/js/build.js:718 msgid "Created" msgstr "" @@ -967,14 +976,14 @@ msgid "Print Build Orders" msgstr "" #: build/templates/build/index.html:43 -#: order/templates/order/purchase_orders.html:22 -#: order/templates/order/sales_orders.html:22 +#: order/templates/order/purchase_orders.html:27 +#: order/templates/order/sales_orders.html:27 msgid "Display calendar view" msgstr "" #: build/templates/build/index.html:46 -#: order/templates/order/purchase_orders.html:25 -#: order/templates/order/sales_orders.html:25 +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:30 msgid "Display list view" msgstr "" @@ -1161,7 +1170,7 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1062 order/views.py:107 order/views.py:159 part/views.py:167 +#: build/views.py:1062 order/views.py:107 order/views.py:159 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" @@ -1215,294 +1224,310 @@ msgid "Default currency" msgstr "" #: common/models.py:82 -msgid "Barcode Support" +msgid "Download from URL" msgstr "" #: common/models.py:83 -msgid "Enable barcode scanner support" +msgid "Allow download of remote images and files from external URL" msgstr "" #: common/models.py:89 -msgid "IPN Regex" +msgid "Barcode Support" msgstr "" #: common/models.py:90 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:96 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:97 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:94 +#: common/models.py:101 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:95 +#: common/models.py:102 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:101 -msgid "Copy Part BOM Data" -msgstr "" - -#: common/models.py:102 -msgid "Copy BOM data by default when duplicating a part" -msgstr "" - #: common/models.py:108 -msgid "Copy Part Parameter Data" +msgid "Allow Editing IPN" msgstr "" #: common/models.py:109 -msgid "Copy parameter data by default when duplicating a part" +msgid "Allow changing the IPN value while editing a part" msgstr "" #: common/models.py:115 -msgid "Copy Part Test Data" +msgid "Copy Part BOM Data" msgstr "" #: common/models.py:116 -msgid "Copy test data by default when duplicating a part" +msgid "Copy BOM data by default when duplicating a part" msgstr "" #: common/models.py:122 -msgid "Copy Category Parameter Templates" +msgid "Copy Part Parameter Data" msgstr "" #: common/models.py:123 -msgid "Copy category parameter templates when creating a part" +msgid "Copy parameter data by default when duplicating a part" msgstr "" #: common/models.py:129 -msgid "Recent Part Count" +msgid "Copy Part Test Data" msgstr "" #: common/models.py:130 -msgid "Number of recent parts to display on index page" +msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:136 part/templates/part/detail.html:160 -#: report/models.py:168 stock/forms.py:258 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:283 -msgid "Template" +#: common/models.py:136 +msgid "Copy Category Parameter Templates" msgstr "" #: common/models.py:137 -msgid "Parts are templates by default" +msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:143 part/models.py:832 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:295 -msgid "Assembly" +#: common/models.py:143 +msgid "Recent Part Count" msgstr "" #: common/models.py:144 -msgid "Parts can be assembled from other components by default" +msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:150 part/models.py:838 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:299 -msgid "Component" +#: common/models.py:150 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:258 templates/js/table_filters.js:24 +#: templates/js/table_filters.js:288 +msgid "Template" msgstr "" #: common/models.py:151 -msgid "Parts can be used as sub-components by default" +msgid "Parts are templates by default" msgstr "" -#: common/models.py:157 part/models.py:849 part/templates/part/detail.html:200 -msgid "Purchaseable" +#: common/models.py:157 part/models.py:832 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:300 +msgid "Assembly" msgstr "" #: common/models.py:158 -msgid "Parts are purchaseable by default" +msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:164 part/models.py:854 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:307 -msgid "Salable" +#: common/models.py:164 part/models.py:838 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:304 +msgid "Component" msgstr "" #: common/models.py:165 -msgid "Parts are salable by default" +msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:171 part/models.py:844 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:311 -msgid "Trackable" +#: common/models.py:171 part/models.py:849 part/templates/part/detail.html:200 +msgid "Purchaseable" msgstr "" #: common/models.py:172 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:178 part/models.py:854 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:312 +msgid "Salable" +msgstr "" + +#: common/models.py:179 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:185 part/models.py:844 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:32 templates/js/table_filters.js:316 +msgid "Trackable" +msgstr "" + +#: common/models.py:186 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:178 part/models.py:864 part/templates/part/detail.html:150 +#: common/models.py:192 part/models.py:864 part/templates/part/detail.html:150 #: templates/js/table_filters.js:28 msgid "Virtual" msgstr "" -#: common/models.py:179 +#: common/models.py:193 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:185 +#: common/models.py:199 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:186 +#: common/models.py:200 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:192 +#: common/models.py:206 msgid "Debug Mode" msgstr "" -#: common/models.py:193 +#: common/models.py:207 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:199 +#: common/models.py:213 msgid "Page Size" msgstr "" -#: common/models.py:200 +#: common/models.py:214 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:210 +#: common/models.py:224 msgid "Test Reports" msgstr "" -#: common/models.py:211 +#: common/models.py:225 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:217 +#: common/models.py:231 msgid "Stock Expiry" msgstr "" -#: common/models.py:218 +#: common/models.py:232 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:224 +#: common/models.py:238 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:225 +#: common/models.py:239 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:231 +#: common/models.py:245 msgid "Stock Stale Time" msgstr "" -#: common/models.py:232 +#: common/models.py:246 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:234 part/templates/part/detail.html:121 +#: common/models.py:248 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:239 +#: common/models.py:253 msgid "Build Expired Stock" msgstr "" -#: common/models.py:240 +#: common/models.py:254 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:246 +#: common/models.py:260 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:247 +#: common/models.py:261 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:253 +#: common/models.py:267 msgid "Group by Part" msgstr "" -#: common/models.py:254 +#: common/models.py:268 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:260 +#: common/models.py:274 msgid "Recent Stock Count" msgstr "" -#: common/models.py:261 +#: common/models.py:275 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:267 +#: common/models.py:281 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:268 +#: common/models.py:282 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:273 +#: common/models.py:287 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:274 +#: common/models.py:288 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:278 +#: common/models.py:292 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:279 +#: common/models.py:293 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:284 +#: common/models.py:298 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:299 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:508 +#: common/models.py:522 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:510 +#: common/models.py:524 msgid "Settings value" msgstr "" -#: common/models.py:545 +#: common/models.py:559 msgid "Must be an integer value" msgstr "" -#: common/models.py:568 +#: common/models.py:582 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:579 +#: common/models.py:593 msgid "Value must be an integer value" msgstr "" -#: common/models.py:602 +#: common/models.py:616 msgid "Key string must be unique" msgstr "" -#: common/models.py:683 company/forms.py:113 +#: common/models.py:697 company/forms.py:131 msgid "Price break quantity" msgstr "" -#: common/models.py:691 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:705 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:692 +#: common/models.py:706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:715 +#: common/models.py:729 msgid "Default" msgstr "" @@ -1526,11 +1551,19 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/forms.py:80 +#: company/forms.py:75 part/forms.py:46 +msgid "URL" +msgstr "" + +#: company/forms.py:76 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/forms.py:98 msgid "Single Price" msgstr "" -#: company/forms.py:82 +#: company/forms.py:100 msgid "Single quantity price" msgstr "" @@ -1542,7 +1575,7 @@ msgstr "" msgid "Description of the company" msgstr "" -#: company/models.py:100 company/templates/company/company_base.html:57 +#: company/models.py:100 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:31 templates/js/company.js:60 msgid "Website" msgstr "" @@ -1551,7 +1584,7 @@ msgstr "" msgid "Company website URL" msgstr "" -#: company/models.py:103 company/templates/company/company_base.html:64 +#: company/models.py:103 company/templates/company/company_base.html:77 msgid "Address" msgstr "" @@ -1567,7 +1600,7 @@ msgstr "" msgid "Contact phone number" msgstr "" -#: company/models.py:111 company/templates/company/company_base.html:78 +#: company/models.py:111 company/templates/company/company_base.html:91 msgid "Email" msgstr "" @@ -1575,7 +1608,7 @@ msgstr "" msgid "Contact email address" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:85 +#: company/models.py:114 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" @@ -1604,7 +1637,7 @@ msgid "Currency" msgstr "" #: company/models.py:313 stock/models.py:370 -#: stock/templates/stock/item_base.html:214 +#: stock/templates/stock/item_base.html:220 msgid "Base Part" msgstr "" @@ -1615,9 +1648,9 @@ msgstr "" #: company/models.py:323 company/templates/company/detail.html:60 #: company/templates/company/supplier_part_base.html:83 #: company/templates/company/supplier_part_detail.html:25 -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170 -#: stock/templates/stock/item_base.html:331 templates/js/company.js:48 +#: stock/templates/stock/item_base.html:337 templates/js/company.js:48 #: templates/js/company.js:164 templates/js/order.js:170 msgid "Supplier" msgstr "" @@ -1659,7 +1692,7 @@ msgid "Manufacturer part number" msgstr "" #: company/models.py:353 part/models.py:742 -#: report/templates/report/inventree_build_order_base.html:168 +#: report/templates/report/inventree_build_order_base.html:165 #: templates/js/company.js:208 templates/js/part.js:430 msgid "Link" msgstr "" @@ -1674,6 +1707,8 @@ msgstr "" #: company/models.py:365 company/templates/company/supplier_part_base.html:113 #: company/templates/company/supplier_part_detail.html:38 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" @@ -1691,19 +1726,29 @@ msgstr "" msgid "Assigned Stock" msgstr "" -#: company/templates/company/company_base.html:7 -#: company/templates/company/company_base.html:22 +#: company/templates/company/company_base.html:9 +#: company/templates/company/company_base.html:35 #: templates/InvenTree/search.html:288 templates/js/company.js:33 msgid "Company" msgstr "" -#: company/templates/company/company_base.html:51 +#: company/templates/company/company_base.html:25 +#: part/templates/part/part_thumb.html:21 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:27 +#: part/templates/part/part_thumb.html:23 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:64 #: company/templates/company/detail.html:10 #: company/templates/company/navbar.html:12 msgid "Company Details" msgstr "" -#: company/templates/company/company_base.html:71 +#: company/templates/company/company_base.html:84 msgid "Phone" msgstr "" @@ -1720,8 +1765,8 @@ msgid "Uses default currency" msgstr "" #: company/templates/company/detail.html:65 -#: order/templates/order/sales_order_base.html:89 stock/models.py:412 -#: stock/models.py:413 stock/templates/stock/item_base.html:241 +#: order/templates/order/sales_order_base.html:92 stock/models.py:412 +#: stock/models.py:413 stock/templates/stock/item_base.html:247 #: templates/js/company.js:40 templates/js/order.js:267 msgid "Customer" msgstr "" @@ -1770,23 +1815,23 @@ msgstr "" msgid "Create new Part" msgstr "" -#: company/templates/company/detail_part.html:72 company/views.py:56 -#: order/templates/order/purchase_orders.html:164 +#: company/templates/company/detail_part.html:72 company/views.py:62 +#: order/templates/order/purchase_orders.html:182 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" -#: company/templates/company/detail_part.html:73 company/views.py:195 -#: order/templates/order/purchase_orders.html:165 +#: company/templates/company/detail_part.html:73 company/views.py:279 +#: order/templates/order/purchase_orders.html:183 msgid "Create new Supplier" msgstr "" -#: company/templates/company/detail_part.html:78 company/views.py:63 +#: company/templates/company/detail_part.html:78 company/views.py:69 #: part/templates/part/supplier.html:56 msgid "New Manufacturer" msgstr "" -#: company/templates/company/detail_part.html:79 company/views.py:198 +#: company/templates/company/detail_part.html:79 company/views.py:282 msgid "Create new Manufacturer" msgstr "" @@ -1897,28 +1942,28 @@ msgid "Are you sure you want to delete the following Supplier Parts?" msgstr "" #: company/templates/company/purchase_orders.html:18 -#: order/templates/order/purchase_orders.html:19 +#: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" #: company/templates/company/purchase_orders.html:19 -#: order/templates/order/purchase_orders.html:20 +#: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" #: company/templates/company/sales_orders.html:19 -#: order/templates/order/sales_orders.html:19 +#: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" #: company/templates/company/sales_orders.html:20 -#: order/templates/order/sales_orders.html:20 +#: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:6 #: company/templates/company/supplier_part_base.html:19 stock/models.py:379 -#: stock/templates/stock/item_base.html:336 templates/js/company.js:180 +#: stock/templates/stock/item_base.html:342 templates/js/company.js:180 msgid "Supplier Part" msgstr "" @@ -1946,7 +1991,7 @@ msgid "Internal Part" msgstr "" #: company/templates/company/supplier_part_base.html:106 stock/models.py:394 -#: stock/templates/stock/item_base.html:289 templates/js/stock.js:663 +#: stock/templates/stock/item_base.html:295 templates/js/stock.js:663 msgid "Packaging" msgstr "" @@ -1959,8 +2004,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:485 -#: part/templates/part/sale_prices.html:17 part/views.py:2511 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:569 +#: part/templates/part/sale_prices.html:17 part/views.py:2618 msgid "Add Price Break" msgstr "" @@ -1979,95 +2024,107 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:55 part/templates/part/navbar.html:72 +#: company/views.py:61 part/templates/part/navbar.html:72 #: part/templates/part/navbar.html:75 templates/InvenTree/search.html:291 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" -#: company/views.py:62 templates/InvenTree/search.html:308 +#: company/views.py:68 templates/InvenTree/search.html:308 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "" -#: company/views.py:69 templates/InvenTree/search.html:321 +#: company/views.py:75 templates/InvenTree/search.html:321 #: templates/navbar.html:45 msgid "Customers" msgstr "" -#: company/views.py:70 +#: company/views.py:76 order/templates/order/sales_orders.html:184 msgid "New Customer" msgstr "" -#: company/views.py:78 +#: company/views.py:84 msgid "Companies" msgstr "" -#: company/views.py:79 +#: company/views.py:85 msgid "New Company" msgstr "" -#: company/views.py:157 +#: company/views.py:167 part/views.py:848 +msgid "Download Image" +msgstr "" + +#: company/views.py:196 part/views.py:880 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:212 part/views.py:896 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: company/views.py:241 msgid "Update Company Image" msgstr "" -#: company/views.py:163 +#: company/views.py:247 msgid "Updated company image" msgstr "" -#: company/views.py:173 +#: company/views.py:257 msgid "Edit Company" msgstr "" -#: company/views.py:178 +#: company/views.py:262 msgid "Edited company information" msgstr "" -#: company/views.py:201 +#: company/views.py:285 order/templates/order/sales_orders.html:185 msgid "Create new Customer" msgstr "" -#: company/views.py:203 +#: company/views.py:287 msgid "Create new Company" msgstr "" -#: company/views.py:230 +#: company/views.py:314 msgid "Created new company" msgstr "" -#: company/views.py:240 +#: company/views.py:324 msgid "Delete Company" msgstr "" -#: company/views.py:246 +#: company/views.py:330 msgid "Company was deleted" msgstr "" -#: company/views.py:271 +#: company/views.py:355 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:294 templates/js/stock.js:1083 +#: company/views.py:378 templates/js/stock.js:1083 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:413 +#: company/views.py:497 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:490 part/views.py:2515 +#: company/views.py:574 part/views.py:2622 msgid "Added new price break" msgstr "" -#: company/views.py:546 part/views.py:2559 +#: company/views.py:630 part/views.py:2666 msgid "Edit Price Break" msgstr "" -#: company/views.py:561 part/views.py:2573 +#: company/views.py:645 part/views.py:2680 msgid "Delete Price Break" msgstr "" -#: label/api.py:56 report/api.py:162 +#: label/api.py:56 report/api.py:201 msgid "No valid objects provided to template" msgstr "" @@ -2087,7 +2144,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:257 +#: label/models.py:123 report/models.py:274 msgid "Enabled" msgstr "" @@ -2111,24 +2168,25 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:274 report/models.py:277 +#: label/models.py:223 label/models.py:274 report/models.py:294 +#: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" -#: order/forms.py:25 order/templates/order/order_base.html:44 +#: order/forms.py:25 order/templates/order/order_base.html:47 msgid "Place order" msgstr "" -#: order/forms.py:36 order/templates/order/order_base.html:51 +#: order/forms.py:36 order/templates/order/order_base.html:54 msgid "Mark order as complete" msgstr "" -#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:56 -#: order/templates/order/sales_order_base.html:56 +#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:59 +#: order/templates/order/sales_order_base.html:59 msgid "Cancel order" msgstr "" -#: order/forms.py:69 order/templates/order/sales_order_base.html:53 +#: order/forms.py:69 order/templates/order/sales_order_base.html:56 msgid "Ship order" msgstr "" @@ -2144,153 +2202,158 @@ msgstr "" msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:134 +#: order/forms.py:135 msgid "Enter sales order number" msgstr "" -#: order/forms.py:140 order/models.py:438 +#: order/forms.py:141 order/models.py:448 msgid "" "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:98 +#: order/models.py:99 msgid "Order reference" msgstr "" -#: order/models.py:100 +#: order/models.py:101 msgid "Order description" msgstr "" -#: order/models.py:102 +#: order/models.py:103 msgid "Link to external page" msgstr "" -#: order/models.py:112 +#: order/models.py:117 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:122 msgid "Order notes" msgstr "" -#: order/models.py:171 order/models.py:431 +#: order/models.py:181 order/models.py:441 msgid "Purchase order status" msgstr "" -#: order/models.py:179 +#: order/models.py:189 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:182 +#: order/models.py:192 msgid "Supplier order reference code" msgstr "" -#: order/models.py:193 +#: order/models.py:203 msgid "Issue Date" msgstr "" -#: order/models.py:194 +#: order/models.py:204 msgid "Date order was issued" msgstr "" -#: order/models.py:199 +#: order/models.py:209 msgid "Target Delivery Date" msgstr "" -#: order/models.py:200 +#: order/models.py:210 msgid "" "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:205 +#: order/models.py:215 msgid "Completion Date" msgstr "" -#: order/models.py:206 +#: order/models.py:216 msgid "Date order was completed" msgstr "" -#: order/models.py:230 order/models.py:329 part/views.py:1479 +#: order/models.py:240 order/models.py:339 part/views.py:1586 #: stock/models.py:269 stock/models.py:948 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:235 +#: order/models.py:245 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:324 +#: order/models.py:334 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:346 +#: order/models.py:356 msgid "Received items" msgstr "" -#: order/models.py:427 +#: order/models.py:437 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:433 +#: order/models.py:443 msgid "Customer order reference code" msgstr "" -#: order/models.py:491 +#: order/models.py:501 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:578 +#: order/models.py:588 msgid "Item quantity" msgstr "" -#: order/models.py:580 +#: order/models.py:590 msgid "Line item reference" msgstr "" -#: order/models.py:582 +#: order/models.py:592 msgid "Line item notes" msgstr "" -#: order/models.py:608 order/templates/order/order_base.html:9 +#: order/models.py:618 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 -#: stock/templates/stock/item_base.html:303 templates/js/order.js:148 +#: report/templates/report/inventree_po_report.html:77 +#: stock/templates/stock/item_base.html:309 templates/js/order.js:148 msgid "Purchase Order" msgstr "" -#: order/models.py:621 +#: order/models.py:631 msgid "Supplier part" msgstr "" -#: order/models.py:624 +#: order/models.py:634 msgid "Number of items received" msgstr "" -#: order/models.py:631 stock/models.py:505 -#: stock/templates/stock/item_base.html:310 +#: order/models.py:641 stock/models.py:505 +#: stock/templates/stock/item_base.html:316 msgid "Purchase Price" msgstr "" -#: order/models.py:632 +#: order/models.py:642 msgid "Unit purchase price" msgstr "" -#: order/models.py:727 +#: order/models.py:737 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:729 +#: order/models.py:739 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:732 +#: order/models.py:742 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:742 +#: order/models.py:752 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:758 +#: order/models.py:768 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:761 +#: order/models.py:771 msgid "Enter stock allocation quantity" msgstr "" @@ -2300,46 +2363,51 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: order/templates/order/order_base.html:40 +#: order/templates/order/order_base.html:39 +#: order/templates/order/sales_order_base.html:48 +msgid "Print" +msgstr "" + +#: order/templates/order/order_base.html:43 msgid "Edit order information" msgstr "" -#: order/templates/order/order_base.html:48 +#: order/templates/order/order_base.html:51 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:61 +#: order/templates/order/order_base.html:64 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:69 +#: order/templates/order/order_base.html:72 #: order/templates/order/po_navbar.html:11 msgid "Purchase Order Details" msgstr "" -#: order/templates/order/order_base.html:74 -#: order/templates/order/sales_order_base.html:74 +#: order/templates/order/order_base.html:77 +#: order/templates/order/sales_order_base.html:77 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/sales_order_base.html:79 +#: order/templates/order/order_base.html:82 +#: order/templates/order/sales_order_base.html:82 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:95 templates/js/order.js:179 +#: order/templates/order/order_base.html:98 templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/templates/order/order_base.html:114 -#: report/templates/report/inventree_build_order_base.html:125 +#: order/templates/order/order_base.html:117 +#: report/templates/report/inventree_build_order_base.html:122 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:128 +#: order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:207 #: order/templates/order/receive_parts.html:22 -#: order/templates/order/sales_order_base.html:128 +#: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" @@ -2451,6 +2519,11 @@ msgstr "" msgid "Receive line item" msgstr "" +#: order/templates/order/purchase_orders.html:24 +#: order/templates/order/sales_orders.html:24 +msgid "Print Order Reports" +msgstr "" + #: order/templates/order/receive_parts.html:8 msgid "Receive outstanding parts for" msgstr "" @@ -2480,16 +2553,16 @@ msgstr "" msgid "This SalesOrder has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:61 +#: order/templates/order/sales_order_base.html:64 msgid "Packing List" msgstr "" -#: order/templates/order/sales_order_base.html:69 +#: order/templates/order/sales_order_base.html:72 #: order/templates/order/so_navbar.html:12 msgid "Sales Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:95 templates/js/order.js:275 +#: order/templates/order/sales_order_base.html:98 templates/js/order.js:275 msgid "Customer Reference" msgstr "" @@ -2507,7 +2580,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:75 #: order/templates/order/sales_order_detail.html:157 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:417 stock/templates/stock/item_base.html:228 +#: stock/models.py:417 stock/templates/stock/item_base.html:234 #: templates/js/build.js:418 msgid "Serial Number" msgstr "" @@ -2727,136 +2800,136 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/bom.py:274 +#: part/bom.py:278 #, python-brace-format msgid "Unsupported file format: {f}" msgstr "" -#: part/bom.py:279 +#: part/bom.py:283 msgid "Error reading BOM file (invalid data)" msgstr "" -#: part/bom.py:281 +#: part/bom.py:285 msgid "Error reading BOM file (incorrect row size)" msgstr "" -#: part/forms.py:71 stock/forms.py:264 +#: part/forms.py:89 stock/forms.py:264 msgid "File Format" msgstr "" -#: part/forms.py:71 stock/forms.py:264 +#: part/forms.py:89 stock/forms.py:264 msgid "Select output file format" msgstr "" -#: part/forms.py:73 +#: part/forms.py:91 msgid "Cascading" msgstr "" -#: part/forms.py:73 +#: part/forms.py:91 msgid "Download cascading / multi-level BOM" msgstr "" -#: part/forms.py:75 +#: part/forms.py:93 msgid "Levels" msgstr "" -#: part/forms.py:75 +#: part/forms.py:93 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: part/forms.py:77 +#: part/forms.py:95 msgid "Include Parameter Data" msgstr "" -#: part/forms.py:77 +#: part/forms.py:95 msgid "Include part parameters data in exported BOM" msgstr "" -#: part/forms.py:79 +#: part/forms.py:97 msgid "Include Stock Data" msgstr "" -#: part/forms.py:79 +#: part/forms.py:97 msgid "Include part stock data in exported BOM" msgstr "" -#: part/forms.py:81 +#: part/forms.py:99 msgid "Include Supplier Data" msgstr "" -#: part/forms.py:81 +#: part/forms.py:99 msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:102 part/models.py:2053 +#: part/forms.py:120 part/models.py:2053 msgid "Parent Part" msgstr "" -#: part/forms.py:103 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:121 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:109 +#: part/forms.py:127 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:114 +#: part/forms.py:132 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:132 +#: part/forms.py:150 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:144 +#: part/forms.py:162 msgid "Select BOM file to upload" msgstr "" -#: part/forms.py:163 +#: part/forms.py:181 msgid "Related Part" msgstr "" -#: part/forms.py:182 +#: part/forms.py:200 msgid "Select part category" msgstr "" -#: part/forms.py:199 +#: part/forms.py:217 msgid "Duplicate all BOM data for this part" msgstr "" -#: part/forms.py:200 +#: part/forms.py:218 msgid "Copy BOM" msgstr "" -#: part/forms.py:205 +#: part/forms.py:223 msgid "Duplicate all parameter data for this part" msgstr "" -#: part/forms.py:206 +#: part/forms.py:224 msgid "Copy Parameters" msgstr "" -#: part/forms.py:211 +#: part/forms.py:229 msgid "Confirm part creation" msgstr "" -#: part/forms.py:216 +#: part/forms.py:234 msgid "Include category parameter templates" msgstr "" -#: part/forms.py:221 +#: part/forms.py:239 msgid "Include parent categories parameter templates" msgstr "" -#: part/forms.py:301 +#: part/forms.py:319 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:305 +#: part/forms.py:323 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:350 +#: part/forms.py:368 msgid "Input quantity for price calculation" msgstr "" @@ -2960,7 +3033,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:737 part/templates/part/detail.html:35 report/models.py:181 +#: part/models.py:737 part/templates/part/detail.html:35 report/models.py:198 #: templates/js/part.js:164 msgid "Revision" msgstr "" @@ -3024,7 +3097,7 @@ msgstr "" #: part/models.py:859 part/templates/part/detail.html:227 #: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:209 templates/js/table_filters.js:278 +#: templates/js/table_filters.js:214 templates/js/table_filters.js:283 msgid "Active" msgstr "" @@ -3069,7 +3142,7 @@ msgid "Enter description for this test" msgstr "" #: part/models.py:1974 templates/js/part.js:570 -#: templates/js/table_filters.js:195 +#: templates/js/table_filters.js:200 msgid "Required" msgstr "" @@ -3159,7 +3232,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2243 part/views.py:1485 part/views.py:1537 +#: part/models.py:2243 part/views.py:1592 part/views.py:1644 #: stock/models.py:259 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -3197,7 +3270,7 @@ msgstr "" #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:89 -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:324 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:771 #: templates/js/stock.js:923 templates/js/stock.js:1181 msgid "Stock Item" @@ -3248,7 +3321,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1776 +#: part/templates/part/bom.html:61 part/views.py:1883 msgid "Export Bill of Materials" msgstr "" @@ -3264,7 +3337,7 @@ msgstr "" msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/bom.html:160 part/views.py:579 +#: part/templates/part/bom.html:160 part/views.py:584 #: templates/js/stock.js:1077 msgid "Create New Part" msgstr "" @@ -3366,7 +3439,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:25 part/views.py:2157 +#: part/templates/part/category.html:25 part/views.py:2264 msgid "Create new part category" msgstr "" @@ -3486,7 +3559,7 @@ msgstr "" msgid "Part Parameters" msgstr "" -#: part/templates/part/copy_part.html:9 part/views.py:455 +#: part/templates/part/copy_part.html:9 part/views.py:460 msgid "Duplicate Part" msgstr "" @@ -3628,7 +3701,7 @@ msgstr "" msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:103 stock/templates/stock/item_base.html:376 +#: part/templates/part/navbar.html:103 stock/templates/stock/item_base.html:382 msgid "Tests" msgstr "" @@ -3647,7 +3720,7 @@ msgstr "" #: part/templates/part/params.html:18 #: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "New Parameter" msgstr "" @@ -3663,7 +3736,7 @@ msgid "Edit" msgstr "" #: part/templates/part/params.html:44 part/templates/part/related.html:44 -#: part/templates/part/supplier.html:22 users/models.py:168 +#: part/templates/part/supplier.html:22 users/models.py:170 msgid "Delete" msgstr "" @@ -3726,7 +3799,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:122 templates/js/table_filters.js:129 +#: part/templates/part/part_base.html:122 templates/js/table_filters.js:134 msgid "In Stock" msgstr "" @@ -3754,14 +3827,10 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/part_thumb.html:16 +#: part/templates/part/part_thumb.html:20 msgid "Select from existing images" msgstr "" -#: part/templates/part/part_thumb.html:17 -msgid "Upload new image" -msgstr "" - #: part/templates/part/related.html:18 msgid "Add Related" msgstr "" @@ -3847,283 +3916,296 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/views.py:84 +#: part/views.py:89 msgid "Add Related Part" msgstr "" -#: part/views.py:139 +#: part/views.py:144 msgid "Delete Related Part" msgstr "" -#: part/views.py:153 +#: part/views.py:158 msgid "Add part attachment" msgstr "" -#: part/views.py:206 templates/attachment_table.html:32 +#: part/views.py:211 templates/attachment_table.html:32 msgid "Edit attachment" msgstr "" -#: part/views.py:210 +#: part/views.py:215 msgid "Part attachment updated" msgstr "" -#: part/views.py:225 +#: part/views.py:230 msgid "Delete Part Attachment" msgstr "" -#: part/views.py:233 +#: part/views.py:238 msgid "Deleted part attachment" msgstr "" -#: part/views.py:242 +#: part/views.py:247 msgid "Create Test Template" msgstr "" -#: part/views.py:269 +#: part/views.py:274 msgid "Edit Test Template" msgstr "" -#: part/views.py:283 +#: part/views.py:288 msgid "Delete Test Template" msgstr "" -#: part/views.py:290 +#: part/views.py:295 msgid "Set Part Category" msgstr "" -#: part/views.py:340 +#: part/views.py:345 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:375 +#: part/views.py:380 msgid "Create Variant" msgstr "" -#: part/views.py:460 +#: part/views.py:465 msgid "Copied part" msgstr "" -#: part/views.py:514 part/views.py:652 +#: part/views.py:519 part/views.py:657 msgid "Possible matches exist - confirm creation of new part" msgstr "" -#: part/views.py:584 +#: part/views.py:589 msgid "Created new part" msgstr "" -#: part/views.py:820 +#: part/views.py:825 msgid "Part QR Code" msgstr "" -#: part/views.py:839 +#: part/views.py:927 msgid "Upload Part Image" msgstr "" -#: part/views.py:845 part/views.py:880 +#: part/views.py:933 part/views.py:968 msgid "Updated part image" msgstr "" -#: part/views.py:854 +#: part/views.py:942 msgid "Select Part Image" msgstr "" -#: part/views.py:883 +#: part/views.py:971 msgid "Part image not found" msgstr "" -#: part/views.py:894 +#: part/views.py:982 msgid "Edit Part Properties" msgstr "" -#: part/views.py:923 +#: part/views.py:1017 msgid "Duplicate BOM" msgstr "" -#: part/views.py:953 +#: part/views.py:1047 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:974 +#: part/views.py:1068 msgid "Validate BOM" msgstr "" -#: part/views.py:995 +#: part/views.py:1089 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1006 +#: part/views.py:1100 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1140 +#: part/views.py:1234 msgid "No BOM file provided" msgstr "" -#: part/views.py:1488 +#: part/views.py:1595 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1513 part/views.py:1516 +#: part/views.py:1620 part/views.py:1623 msgid "Select valid part" msgstr "" -#: part/views.py:1522 +#: part/views.py:1629 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1560 +#: part/views.py:1667 msgid "Select a part" msgstr "" -#: part/views.py:1566 +#: part/views.py:1673 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1570 +#: part/views.py:1677 msgid "Specify quantity" msgstr "" -#: part/views.py:1826 +#: part/views.py:1933 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1833 +#: part/views.py:1940 msgid "Part was deleted" msgstr "" -#: part/views.py:1842 +#: part/views.py:1949 msgid "Part Pricing" msgstr "" -#: part/views.py:1956 +#: part/views.py:2063 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1966 +#: part/views.py:2073 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1973 +#: part/views.py:2080 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1981 +#: part/views.py:2088 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2031 +#: part/views.py:2138 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2045 +#: part/views.py:2152 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2105 +#: part/views.py:2212 msgid "Edit Part Category" msgstr "" -#: part/views.py:2143 +#: part/views.py:2250 msgid "Delete Part Category" msgstr "" -#: part/views.py:2149 +#: part/views.py:2256 msgid "Part category was deleted" msgstr "" -#: part/views.py:2201 +#: part/views.py:2308 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2302 +#: part/views.py:2409 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2358 +#: part/views.py:2465 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2377 +#: part/views.py:2484 msgid "Create BOM Item" msgstr "" -#: part/views.py:2447 +#: part/views.py:2554 msgid "Edit BOM item" msgstr "" -#: part/views.py:2503 +#: part/views.py:2610 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:163 +#: report/models.py:180 msgid "Template name" msgstr "" -#: report/models.py:169 +#: report/models.py:186 msgid "Report template file" msgstr "" -#: report/models.py:176 +#: report/models.py:193 msgid "Report template description" msgstr "" -#: report/models.py:182 +#: report/models.py:199 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:258 +#: report/models.py:275 msgid "Report template is enabled" msgstr "" -#: report/models.py:278 +#: report/models.py:295 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:286 +#: report/models.py:303 msgid "Include Installed Tests" msgstr "" -#: report/models.py:287 +#: report/models.py:304 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:330 +#: report/models.py:347 msgid "Build Filters" msgstr "" -#: report/models.py:331 +#: report/models.py:348 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:368 +#: report/models.py:385 msgid "Part Filters" msgstr "" -#: report/models.py:369 +#: report/models.py:386 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:415 +#: report/models.py:416 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:450 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:500 msgid "Report snippet file" msgstr "" -#: report/models.py:419 +#: report/models.py:504 msgid "Snippet file description" msgstr "" -#: report/models.py:454 +#: report/models.py:539 msgid "Report asset file" msgstr "" -#: report/models.py:457 +#: report/models.py:542 msgid "Asset file description" msgstr "" -#: report/templates/report/inventree_build_order_base.html:150 +#: report/templates/report/inventree_build_order_base.html:147 msgid "Required For" msgstr "" +#: report/templates/report/inventree_po_report.html:85 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + #: report/templates/report/inventree_test_report_base.html:21 msgid "Stock Item Test Report" msgstr "" @@ -4276,7 +4358,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:400 stock/templates/stock/item_base.html:249 +#: stock/models.py:400 stock/templates/stock/item_base.html:255 msgid "Installed In" msgstr "" @@ -4316,7 +4398,7 @@ msgstr "" msgid "Destination Sales Order" msgstr "" -#: stock/models.py:472 stock/templates/stock/item_base.html:343 +#: stock/models.py:472 stock/templates/stock/item_base.html:349 #: templates/js/stock.js:652 msgid "Expiry Date" msgstr "" @@ -4433,7 +4515,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1645 templates/js/table_filters.js:185 +#: stock/models.py:1645 templates/js/table_filters.js:190 msgid "Test result" msgstr "" @@ -4507,12 +4589,12 @@ msgid "" msgstr "" #: stock/templates/stock/item_base.html:91 -#: stock/templates/stock/item_base.html:347 templates/js/table_filters.js:118 +#: stock/templates/stock/item_base.html:353 templates/js/table_filters.js:123 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:349 templates/js/table_filters.js:123 +#: stock/templates/stock/item_base.html:355 templates/js/table_filters.js:128 msgid "Stale" msgstr "" @@ -4547,97 +4629,97 @@ msgstr "" msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:161 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:163 templates/stock_table.html:53 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:162 templates/stock_table.html:54 +#: stock/templates/stock/item_base.html:166 templates/stock_table.html:54 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:169 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:172 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:176 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:177 templates/js/stock.js:1218 +#: stock/templates/stock/item_base.html:183 templates/js/stock.js:1218 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:186 +#: stock/templates/stock/item_base.html:192 #: stock/templates/stock/location.html:55 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:189 +#: stock/templates/stock/item_base.html:195 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:200 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:203 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:209 +#: stock/templates/stock/item_base.html:215 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:268 templates/js/build.js:442 +#: stock/templates/stock/item_base.html:274 templates/js/build.js:442 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:275 +#: stock/templates/stock/item_base.html:281 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:296 templates/InvenTree/search.html:167 +#: stock/templates/stock/item_base.html:302 templates/InvenTree/search.html:167 #: templates/js/build.js:655 templates/navbar.html:29 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:323 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:347 +#: stock/templates/stock/item_base.html:353 msgid "This StockItem expired on" msgstr "" -#: stock/templates/stock/item_base.html:349 +#: stock/templates/stock/item_base.html:355 msgid "This StockItem expires on" msgstr "" -#: stock/templates/stock/item_base.html:356 templates/js/stock.js:658 +#: stock/templates/stock/item_base.html:362 templates/js/stock.js:658 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:361 +#: stock/templates/stock/item_base.html:367 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:365 +#: stock/templates/stock/item_base.html:371 msgid "No stocktake performed" msgstr "" @@ -5096,12 +5178,12 @@ msgid "Default Value" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:80 +#: templates/InvenTree/settings/part.html:81 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:82 msgid "Delete Template" msgstr "" @@ -5109,7 +5191,7 @@ msgstr "" msgid "Global InvenTree Settings" msgstr "" -#: templates/InvenTree/settings/global.html:25 +#: templates/InvenTree/settings/global.html:26 msgid "Barcode Settings" msgstr "" @@ -5125,11 +5207,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:39 +#: templates/InvenTree/settings/part.html:40 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:60 +#: templates/InvenTree/settings/part.html:61 msgid "No part parameter templates found" msgstr "" @@ -5294,6 +5376,22 @@ msgstr "" msgid "Delete attachment" msgstr "" +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + #: templates/js/barcode.js:8 msgid "Scan barcode data here using wedge scanner" msgstr "" @@ -5322,7 +5420,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:856 +#: templates/js/barcode.js:119 templates/js/modals.js:857 msgid "Invalid server response" msgstr "" @@ -5553,11 +5651,11 @@ msgstr "" msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:66 +#: templates/js/modals.js:473 templates/modals.html:73 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:65 +#: templates/js/modals.js:474 templates/modals.html:72 msgid "Cancel" msgstr "" @@ -5565,81 +5663,81 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:807 -#: templates/modals.html:22 templates/modals.html:46 +#: templates/js/modals.js:549 templates/js/modals.js:808 +#: templates/modals.html:29 templates/modals.html:53 msgid "Submit" msgstr "" -#: templates/js/modals.js:550 templates/js/modals.js:808 -#: templates/modals.html:21 templates/modals.html:45 templates/modals.html:84 +#: templates/js/modals.js:550 templates/js/modals.js:809 +#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93 msgid "Close" msgstr "" -#: templates/js/modals.js:759 +#: templates/js/modals.js:760 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:759 +#: templates/js/modals.js:760 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:772 +#: templates/js/modals.js:773 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:856 +#: templates/js/modals.js:857 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:866 +#: templates/js/modals.js:867 msgid "No Response" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:868 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:871 +#: templates/js/modals.js:872 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:873 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:876 +#: templates/js/modals.js:877 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:878 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:881 +#: templates/js/modals.js:882 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:883 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:886 +#: templates/js/modals.js:887 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:888 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:891 +#: templates/js/modals.js:892 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:893 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:895 +#: templates/js/modals.js:896 msgid "Error requesting form data" msgstr "" @@ -5687,7 +5785,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:408 templates/js/table_filters.js:291 +#: templates/js/part.js:408 templates/js/table_filters.js:296 msgid "Low stock" msgstr "" @@ -5732,7 +5830,8 @@ msgid "Stock item(s) must be selected before printing reports" msgstr "" #: templates/js/report.js:116 templates/js/report.js:169 -#: templates/js/report.js:223 +#: templates/js/report.js:223 templates/js/report.js:277 +#: templates/js/report.js:331 msgid "No Reports Found" msgstr "" @@ -5764,6 +5863,26 @@ msgstr "" msgid "No report templates found which match selected part(s)" msgstr "" +#: templates/js/report.js:259 +msgid "Select Purchase Orders" +msgstr "" + +#: templates/js/report.js:260 +msgid "Purchase Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/report.js:278 templates/js/report.js:332 +msgid "No report templates found which match selected orders" +msgstr "" + +#: templates/js/report.js:313 +msgid "Select Sales Orders" +msgstr "" + +#: templates/js/report.js:314 +msgid "Sales Order(s) must be selected before printing report" +msgstr "" + #: templates/js/stock.js:38 msgid "PASS" msgstr "" @@ -5848,7 +5967,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:616 templates/js/table_filters.js:111 +#: templates/js/stock.js:616 templates/js/table_filters.js:116 msgid "Depleted" msgstr "" @@ -5884,7 +6003,7 @@ msgstr "" msgid "Serial" msgstr "" -#: templates/js/stock.js:1281 templates/js/table_filters.js:144 +#: templates/js/stock.js:1281 templates/js/table_filters.js:149 msgid "Installed" msgstr "" @@ -5900,36 +6019,36 @@ msgstr "" msgid "Validated" msgstr "" -#: templates/js/table_filters.js:70 templates/js/table_filters.js:154 +#: templates/js/table_filters.js:70 templates/js/table_filters.js:159 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:73 templates/js/table_filters.js:161 +#: templates/js/table_filters.js:73 templates/js/table_filters.js:166 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:74 templates/js/table_filters.js:162 +#: templates/js/table_filters.js:74 templates/js/table_filters.js:167 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:77 templates/js/table_filters.js:165 +#: templates/js/table_filters.js:77 templates/js/table_filters.js:170 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:78 templates/js/table_filters.js:166 +#: templates/js/table_filters.js:78 templates/js/table_filters.js:171 msgid "Serial number less than or equal to" msgstr "" #: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:157 templates/js/table_filters.js:158 +#: templates/js/table_filters.js:162 templates/js/table_filters.js:163 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:86 templates/js/table_filters.js:175 +#: templates/js/table_filters.js:86 templates/js/table_filters.js:180 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:258 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:263 msgid "Active parts" msgstr "" @@ -5937,111 +6056,115 @@ msgstr "" msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:101 -msgid "Is allocated" -msgstr "" - #: templates/js/table_filters.js:102 -msgid "Item has been alloacted" +msgid "Part is an assembly" msgstr "" #: templates/js/table_filters.js:106 -msgid "Include sublocations" +msgid "Is allocated" msgstr "" #: templates/js/table_filters.js:107 -msgid "Include stock in sublocations" +msgid "Item has been allocated" +msgstr "" + +#: templates/js/table_filters.js:111 +msgid "Include sublocations" msgstr "" #: templates/js/table_filters.js:112 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/table_filters.js:117 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:124 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:129 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:130 +#: templates/js/table_filters.js:135 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:139 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:135 +#: templates/js/table_filters.js:140 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:144 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:140 +#: templates/js/table_filters.js:145 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:145 +#: templates/js/table_filters.js:150 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:149 +#: templates/js/table_filters.js:154 msgid "Sent to customer" msgstr "" -#: templates/js/table_filters.js:150 +#: templates/js/table_filters.js:155 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:170 templates/js/table_filters.js:171 +#: templates/js/table_filters.js:175 templates/js/table_filters.js:176 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:204 +#: templates/js/table_filters.js:209 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:223 templates/js/table_filters.js:240 +#: templates/js/table_filters.js:228 templates/js/table_filters.js:245 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:228 templates/js/table_filters.js:245 +#: templates/js/table_filters.js:233 templates/js/table_filters.js:250 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:268 +#: templates/js/table_filters.js:273 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:269 +#: templates/js/table_filters.js:274 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:273 +#: templates/js/table_filters.js:278 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:274 +#: templates/js/table_filters.js:279 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:279 +#: templates/js/table_filters.js:284 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:287 +#: templates/js/table_filters.js:292 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:303 +#: templates/js/table_filters.js:308 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:315 +#: templates/js/table_filters.js:320 msgid "Purchasable" msgstr "" @@ -6098,7 +6221,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:14 templates/modals.html:39 +#: templates/modals.html:21 templates/modals.html:46 msgid "Form errors exist" msgstr "" @@ -6270,38 +6393,38 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:151 +#: users/models.py:153 msgid "Permission set" msgstr "" -#: users/models.py:159 +#: users/models.py:161 msgid "Group" msgstr "" -#: users/models.py:162 +#: users/models.py:164 msgid "View" msgstr "" -#: users/models.py:162 +#: users/models.py:164 msgid "Permission to view items" msgstr "" -#: users/models.py:164 +#: users/models.py:166 msgid "Add" msgstr "" -#: users/models.py:164 +#: users/models.py:166 msgid "Permission to add items" msgstr "" -#: users/models.py:166 +#: users/models.py:168 msgid "Change" msgstr "" -#: users/models.py:166 +#: users/models.py:168 msgid "Permissions to edit items" msgstr "" -#: users/models.py:168 +#: users/models.py:170 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 178c537454..d229c67b45 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-09 11:11+0100\n" +"POT-Creation-Date: 2021-03-28 16:04+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -58,7 +58,7 @@ msgstr "" msgid "Select Category" msgstr "" -#: InvenTree/helpers.py:361 order/models.py:232 order/models.py:331 +#: InvenTree/helpers.py:361 order/models.py:242 order/models.py:341 #: stock/views.py:1762 msgid "Invalid quantity provided" msgstr "" @@ -106,7 +106,7 @@ msgid "User" msgstr "" #: InvenTree/models.py:106 label/models.py:101 part/models.py:685 -#: part/templates/part/params.html:27 report/models.py:162 +#: part/templates/part/params.html:27 report/models.py:179 #: templates/js/part.js:109 msgid "Name" msgstr "" @@ -172,7 +172,7 @@ msgid "Returned" msgstr "" #: InvenTree/status_codes.py:136 -#: order/templates/order/sales_order_base.html:121 +#: order/templates/order/sales_order_base.html:124 msgid "Shipped" msgstr "" @@ -317,8 +317,8 @@ msgstr "" #: build/forms.py:85 build/templates/build/auto_allocate.html:17 #: build/templates/build/build_base.html:91 -#: build/templates/build/detail.html:31 common/models.py:682 -#: company/forms.py:112 company/templates/company/supplier_part_pricing.html:77 +#: build/templates/build/detail.html:31 common/models.py:696 +#: company/forms.py:130 company/templates/company/supplier_part_pricing.html:77 #: order/templates/order/order_wizard/select_parts.html:32 #: order/templates/order/purchase_order_detail.html:193 #: order/templates/order/sales_order_detail.html:77 @@ -326,11 +326,13 @@ msgstr "" #: part/templates/part/allocation.html:19 #: part/templates/part/allocation.html:53 #: part/templates/part/sale_prices.html:85 -#: report/templates/report/inventree_build_order_base.html:117 +#: report/templates/report/inventree_build_order_base.html:114 +#: report/templates/report/inventree_po_report.html:91 +#: report/templates/report/inventree_so_report.html:91 #: report/templates/report/inventree_test_report_base.html:77 #: stock/forms.py:307 stock/templates/stock/item_base.html:51 #: stock/templates/stock/item_base.html:57 -#: stock/templates/stock/item_base.html:234 +#: stock/templates/stock/item_base.html:240 #: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364 #: templates/js/bom.js:205 templates/js/build.js:420 templates/js/build.js:954 #: templates/js/stock.js:952 templates/js/stock.js:1190 @@ -392,7 +394,7 @@ msgstr "" #: build/models.py:65 build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:35 #: part/templates/part/allocation.html:23 -#: report/templates/report/inventree_build_order_base.html:109 +#: report/templates/report/inventree_build_order_base.html:106 msgid "Build Order" msgstr "" @@ -411,7 +413,9 @@ msgid "Build Order Reference" msgstr "" #: build/models.py:127 order/templates/order/purchase_order_detail.html:188 -#: templates/js/bom.js:197 templates/js/build.js:509 templates/js/build.js:948 +#: report/templates/report/inventree_po_report.html:92 +#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197 +#: templates/js/build.js:509 templates/js/build.js:948 msgid "Reference" msgstr "" @@ -421,8 +425,8 @@ msgstr "" #: company/templates/company/supplier_part_detail.html:31 label/models.py:108 #: order/templates/order/purchase_order_detail.html:168 part/models.py:709 #: part/templates/part/detail.html:54 part/templates/part/set_category.html:14 -#: report/models.py:175 -#: report/templates/report/inventree_build_order_base.html:121 +#: report/models.py:192 +#: report/templates/report/inventree_build_order_base.html:118 #: templates/InvenTree/search.html:208 #: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190 #: templates/js/build.js:677 templates/js/build.js:944 @@ -448,14 +452,16 @@ msgstr "" #: build/models.py:152 build/templates/build/auto_allocate.html:16 #: build/templates/build/build_base.html:86 -#: build/templates/build/detail.html:26 order/models.py:652 +#: build/templates/build/detail.html:26 order/models.py:662 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:156 #: order/templates/order/receive_parts.html:19 part/models.py:320 #: part/templates/part/part_app_base.html:7 part/templates/part/related.html:29 #: part/templates/part/set_category.html:13 #: part/templates/part/subcategories.html:17 -#: report/templates/report/inventree_build_order_base.html:113 +#: report/templates/report/inventree_build_order_base.html:110 +#: report/templates/report/inventree_po_report.html:90 +#: report/templates/report/inventree_so_report.html:90 #: templates/InvenTree/search.html:111 templates/InvenTree/search.html:194 #: templates/js/barcode.js:362 templates/js/bom.js:163 #: templates/js/build.js:681 templates/js/build.js:921 @@ -527,7 +533,7 @@ msgstr "" msgid "Batch code for this build output" msgstr "" -#: build/models.py:223 order/models.py:437 +#: build/models.py:223 order/models.py:447 msgid "Target completion date" msgstr "" @@ -543,7 +549,7 @@ msgstr "" #: company/templates/company/supplier_part_base.html:77 #: company/templates/company/supplier_part_detail.html:28 #: part/templates/part/detail.html:83 part/templates/part/part_base.html:100 -#: stock/models.py:423 stock/templates/stock/item_base.html:324 +#: stock/models.py:423 stock/templates/stock/item_base.html:330 msgid "External Link" msgstr "" @@ -560,7 +566,7 @@ msgstr "" #: order/templates/order/so_navbar.html:33 #: order/templates/order/so_navbar.html:36 part/models.py:869 #: part/templates/part/navbar.html:122 -#: report/templates/report/inventree_build_order_base.html:176 +#: report/templates/report/inventree_build_order_base.html:173 #: stock/forms.py:316 stock/forms.py:348 stock/forms.py:376 stock/models.py:495 #: stock/models.py:1663 stock/templates/stock/navbar.html:57 #: templates/js/barcode.js:37 templates/js/bom.js:329 templates/js/stock.js:128 @@ -606,11 +612,11 @@ msgstr "" msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:1031 order/models.py:736 +#: build/models.py:1031 order/models.py:746 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:1035 order/models.py:739 +#: build/models.py:1035 order/models.py:749 msgid "Allocation quantity must be greater than zero" msgstr "" @@ -699,7 +705,7 @@ msgid "" msgstr "" #: build/templates/build/auto_allocate.html:18 stock/forms.py:346 -#: stock/templates/stock/item_base.html:264 +#: stock/templates/stock/item_base.html:270 #: stock/templates/stock/stock_adjust.html:17 #: templates/InvenTree/search.html:244 templates/js/barcode.js:363 #: templates/js/barcode.js:531 templates/js/build.js:434 @@ -724,7 +730,7 @@ msgid "This Build Order is a child of Build Order" msgstr "" #: build/templates/build/build_base.html:37 -#: company/templates/company/company_base.html:27 +#: company/templates/company/company_base.html:40 #: company/templates/company/supplier_part_base.html:25 #: order/templates/order/order_base.html:26 #: order/templates/order/sales_order_base.html:35 @@ -737,11 +743,11 @@ msgstr "" #: build/templates/build/build_base.html:43 #: build/templates/build/build_base.html:108 #: order/templates/order/order_base.html:32 -#: order/templates/order/order_base.html:83 +#: order/templates/order/order_base.html:86 #: order/templates/order/sales_order_base.html:41 -#: order/templates/order/sales_order_base.html:83 -#: templates/js/table_filters.js:213 templates/js/table_filters.js:232 -#: templates/js/table_filters.js:249 +#: order/templates/order/sales_order_base.html:86 +#: templates/js/table_filters.js:218 templates/js/table_filters.js:237 +#: templates/js/table_filters.js:254 msgid "Overdue" msgstr "" @@ -777,7 +783,7 @@ msgstr "" #: build/templates/build/build_base.html:96 #: build/templates/build/detail.html:59 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:370 templates/InvenTree/search.html:236 +#: stock/templates/stock/item_base.html:376 templates/InvenTree/search.html:236 #: templates/js/barcode.js:119 templates/js/build.js:710 #: templates/js/order.js:187 templates/js/order.js:285 #: templates/js/stock.js:624 templates/js/stock.js:1198 @@ -786,9 +792,9 @@ msgstr "" #: build/templates/build/build_base.html:104 #: build/templates/build/detail.html:121 -#: order/templates/order/order_base.html:121 -#: order/templates/order/sales_order_base.html:114 -#: report/templates/report/inventree_build_order_base.html:129 +#: order/templates/order/order_base.html:124 +#: order/templates/order/sales_order_base.html:117 +#: report/templates/report/inventree_build_order_base.html:126 #: templates/js/build.js:723 templates/js/order.js:200 #: templates/js/order.js:298 msgid "Target Date" @@ -804,25 +810,28 @@ msgid "Progress" msgstr "" #: build/templates/build/build_base.html:128 -#: build/templates/build/detail.html:84 order/models.py:650 +#: build/templates/build/detail.html:84 order/models.py:660 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:30 -#: report/templates/report/inventree_build_order_base.html:139 -#: stock/templates/stock/item_base.html:258 templates/js/order.js:245 +#: report/templates/report/inventree_build_order_base.html:136 +#: report/templates/report/inventree_so_report.html:77 +#: stock/templates/stock/item_base.html:264 templates/js/order.js:245 msgid "Sales Order" msgstr "" #: build/templates/build/build_base.html:135 #: build/templates/build/detail.html:98 -#: report/templates/report/inventree_build_order_base.html:156 +#: report/templates/report/inventree_build_order_base.html:153 msgid "Issued By" msgstr "" #: build/templates/build/build_base.html:142 -#: build/templates/build/detail.html:105 -#: report/templates/report/inventree_build_order_base.html:162 +#: build/templates/build/detail.html:105 order/models.py:118 +#: order/templates/order/order_base.html:138 +#: order/templates/order/sales_order_base.html:138 +#: report/templates/report/inventree_build_order_base.html:159 msgid "Responsible" msgstr "" @@ -929,15 +938,15 @@ msgid "Destination location not specified" msgstr "" #: build/templates/build/detail.html:70 -#: stock/templates/stock/item_base.html:282 templates/js/stock.js:632 +#: stock/templates/stock/item_base.html:288 templates/js/stock.js:632 #: templates/js/stock.js:1205 templates/js/table_filters.js:85 -#: templates/js/table_filters.js:174 +#: templates/js/table_filters.js:179 msgid "Batch" msgstr "" #: build/templates/build/detail.html:116 -#: order/templates/order/order_base.html:108 -#: order/templates/order/sales_order_base.html:108 templates/js/build.js:718 +#: order/templates/order/order_base.html:111 +#: order/templates/order/sales_order_base.html:111 templates/js/build.js:718 msgid "Created" msgstr "" @@ -967,14 +976,14 @@ msgid "Print Build Orders" msgstr "" #: build/templates/build/index.html:43 -#: order/templates/order/purchase_orders.html:22 -#: order/templates/order/sales_orders.html:22 +#: order/templates/order/purchase_orders.html:27 +#: order/templates/order/sales_orders.html:27 msgid "Display calendar view" msgstr "" #: build/templates/build/index.html:46 -#: order/templates/order/purchase_orders.html:25 -#: order/templates/order/sales_orders.html:25 +#: order/templates/order/purchase_orders.html:30 +#: order/templates/order/sales_orders.html:30 msgid "Display list view" msgstr "" @@ -1161,7 +1170,7 @@ msgstr "" msgid "Add Build Order Attachment" msgstr "" -#: build/views.py:1062 order/views.py:107 order/views.py:159 part/views.py:167 +#: build/views.py:1062 order/views.py:107 order/views.py:159 part/views.py:172 #: stock/views.py:277 msgid "Added attachment" msgstr "" @@ -1215,294 +1224,310 @@ msgid "Default currency" msgstr "" #: common/models.py:82 -msgid "Barcode Support" +msgid "Download from URL" msgstr "" #: common/models.py:83 -msgid "Enable barcode scanner support" +msgid "Allow download of remote images and files from external URL" msgstr "" #: common/models.py:89 -msgid "IPN Regex" +msgid "Barcode Support" msgstr "" #: common/models.py:90 +msgid "Enable barcode scanner support" +msgstr "" + +#: common/models.py:96 +msgid "IPN Regex" +msgstr "" + +#: common/models.py:97 msgid "Regular expression pattern for matching Part IPN" msgstr "" -#: common/models.py:94 +#: common/models.py:101 msgid "Allow Duplicate IPN" msgstr "" -#: common/models.py:95 +#: common/models.py:102 msgid "Allow multiple parts to share the same IPN" msgstr "" -#: common/models.py:101 -msgid "Copy Part BOM Data" -msgstr "" - -#: common/models.py:102 -msgid "Copy BOM data by default when duplicating a part" -msgstr "" - #: common/models.py:108 -msgid "Copy Part Parameter Data" +msgid "Allow Editing IPN" msgstr "" #: common/models.py:109 -msgid "Copy parameter data by default when duplicating a part" +msgid "Allow changing the IPN value while editing a part" msgstr "" #: common/models.py:115 -msgid "Copy Part Test Data" +msgid "Copy Part BOM Data" msgstr "" #: common/models.py:116 -msgid "Copy test data by default when duplicating a part" +msgid "Copy BOM data by default when duplicating a part" msgstr "" #: common/models.py:122 -msgid "Copy Category Parameter Templates" +msgid "Copy Part Parameter Data" msgstr "" #: common/models.py:123 -msgid "Copy category parameter templates when creating a part" +msgid "Copy parameter data by default when duplicating a part" msgstr "" #: common/models.py:129 -msgid "Recent Part Count" +msgid "Copy Part Test Data" msgstr "" #: common/models.py:130 -msgid "Number of recent parts to display on index page" +msgid "Copy test data by default when duplicating a part" msgstr "" -#: common/models.py:136 part/templates/part/detail.html:160 -#: report/models.py:168 stock/forms.py:258 templates/js/table_filters.js:24 -#: templates/js/table_filters.js:283 -msgid "Template" +#: common/models.py:136 +msgid "Copy Category Parameter Templates" msgstr "" #: common/models.py:137 -msgid "Parts are templates by default" +msgid "Copy category parameter templates when creating a part" msgstr "" -#: common/models.py:143 part/models.py:832 part/templates/part/detail.html:170 -#: templates/js/table_filters.js:295 -msgid "Assembly" +#: common/models.py:143 +msgid "Recent Part Count" msgstr "" #: common/models.py:144 -msgid "Parts can be assembled from other components by default" +msgid "Number of recent parts to display on index page" msgstr "" -#: common/models.py:150 part/models.py:838 part/templates/part/detail.html:180 -#: templates/js/table_filters.js:299 -msgid "Component" +#: common/models.py:150 part/templates/part/detail.html:160 +#: report/models.py:185 stock/forms.py:258 templates/js/table_filters.js:24 +#: templates/js/table_filters.js:288 +msgid "Template" msgstr "" #: common/models.py:151 -msgid "Parts can be used as sub-components by default" +msgid "Parts are templates by default" msgstr "" -#: common/models.py:157 part/models.py:849 part/templates/part/detail.html:200 -msgid "Purchaseable" +#: common/models.py:157 part/models.py:832 part/templates/part/detail.html:170 +#: templates/js/table_filters.js:101 templates/js/table_filters.js:300 +msgid "Assembly" msgstr "" #: common/models.py:158 -msgid "Parts are purchaseable by default" +msgid "Parts can be assembled from other components by default" msgstr "" -#: common/models.py:164 part/models.py:854 part/templates/part/detail.html:210 -#: templates/js/table_filters.js:307 -msgid "Salable" +#: common/models.py:164 part/models.py:838 part/templates/part/detail.html:180 +#: templates/js/table_filters.js:304 +msgid "Component" msgstr "" #: common/models.py:165 -msgid "Parts are salable by default" +msgid "Parts can be used as sub-components by default" msgstr "" -#: common/models.py:171 part/models.py:844 part/templates/part/detail.html:190 -#: templates/js/table_filters.js:32 templates/js/table_filters.js:311 -msgid "Trackable" +#: common/models.py:171 part/models.py:849 part/templates/part/detail.html:200 +msgid "Purchaseable" msgstr "" #: common/models.py:172 +msgid "Parts are purchaseable by default" +msgstr "" + +#: common/models.py:178 part/models.py:854 part/templates/part/detail.html:210 +#: templates/js/table_filters.js:312 +msgid "Salable" +msgstr "" + +#: common/models.py:179 +msgid "Parts are salable by default" +msgstr "" + +#: common/models.py:185 part/models.py:844 part/templates/part/detail.html:190 +#: templates/js/table_filters.js:32 templates/js/table_filters.js:316 +msgid "Trackable" +msgstr "" + +#: common/models.py:186 msgid "Parts are trackable by default" msgstr "" -#: common/models.py:178 part/models.py:864 part/templates/part/detail.html:150 +#: common/models.py:192 part/models.py:864 part/templates/part/detail.html:150 #: templates/js/table_filters.js:28 msgid "Virtual" msgstr "" -#: common/models.py:179 +#: common/models.py:193 msgid "Parts are virtual by default" msgstr "" -#: common/models.py:185 +#: common/models.py:199 msgid "Show Quantity in Forms" msgstr "" -#: common/models.py:186 +#: common/models.py:200 msgid "Display available part quantity in some forms" msgstr "" -#: common/models.py:192 +#: common/models.py:206 msgid "Debug Mode" msgstr "" -#: common/models.py:193 +#: common/models.py:207 msgid "Generate reports in debug mode (HTML output)" msgstr "" -#: common/models.py:199 +#: common/models.py:213 msgid "Page Size" msgstr "" -#: common/models.py:200 +#: common/models.py:214 msgid "Default page size for PDF reports" msgstr "" -#: common/models.py:210 +#: common/models.py:224 msgid "Test Reports" msgstr "" -#: common/models.py:211 +#: common/models.py:225 msgid "Enable generation of test reports" msgstr "" -#: common/models.py:217 +#: common/models.py:231 msgid "Stock Expiry" msgstr "" -#: common/models.py:218 +#: common/models.py:232 msgid "Enable stock expiry functionality" msgstr "" -#: common/models.py:224 +#: common/models.py:238 msgid "Sell Expired Stock" msgstr "" -#: common/models.py:225 +#: common/models.py:239 msgid "Allow sale of expired stock" msgstr "" -#: common/models.py:231 +#: common/models.py:245 msgid "Stock Stale Time" msgstr "" -#: common/models.py:232 +#: common/models.py:246 msgid "Number of days stock items are considered stale before expiring" msgstr "" -#: common/models.py:234 part/templates/part/detail.html:121 +#: common/models.py:248 part/templates/part/detail.html:121 msgid "days" msgstr "" -#: common/models.py:239 +#: common/models.py:253 msgid "Build Expired Stock" msgstr "" -#: common/models.py:240 +#: common/models.py:254 msgid "Allow building with expired stock" msgstr "" -#: common/models.py:246 +#: common/models.py:260 msgid "Stock Ownership Control" msgstr "" -#: common/models.py:247 +#: common/models.py:261 msgid "Enable ownership control over stock locations and items" msgstr "" -#: common/models.py:253 +#: common/models.py:267 msgid "Group by Part" msgstr "" -#: common/models.py:254 +#: common/models.py:268 msgid "Group stock items by part reference in table views" msgstr "" -#: common/models.py:260 +#: common/models.py:274 msgid "Recent Stock Count" msgstr "" -#: common/models.py:261 +#: common/models.py:275 msgid "Number of recent stock items to display on index page" msgstr "" -#: common/models.py:267 +#: common/models.py:281 msgid "Build Order Reference Prefix" msgstr "" -#: common/models.py:268 +#: common/models.py:282 msgid "Prefix value for build order reference" msgstr "" -#: common/models.py:273 +#: common/models.py:287 msgid "Build Order Reference Regex" msgstr "" -#: common/models.py:274 +#: common/models.py:288 msgid "Regular expression pattern for matching build order reference" msgstr "" -#: common/models.py:278 +#: common/models.py:292 msgid "Sales Order Reference Prefix" msgstr "" -#: common/models.py:279 +#: common/models.py:293 msgid "Prefix value for sales order reference" msgstr "" -#: common/models.py:284 +#: common/models.py:298 msgid "Purchase Order Reference Prefix" msgstr "" -#: common/models.py:285 +#: common/models.py:299 msgid "Prefix value for purchase order reference" msgstr "" -#: common/models.py:508 +#: common/models.py:522 msgid "Settings key (must be unique - case insensitive" msgstr "" -#: common/models.py:510 +#: common/models.py:524 msgid "Settings value" msgstr "" -#: common/models.py:545 +#: common/models.py:559 msgid "Must be an integer value" msgstr "" -#: common/models.py:568 +#: common/models.py:582 msgid "Value must be a boolean value" msgstr "" -#: common/models.py:579 +#: common/models.py:593 msgid "Value must be an integer value" msgstr "" -#: common/models.py:602 +#: common/models.py:616 msgid "Key string must be unique" msgstr "" -#: common/models.py:683 company/forms.py:113 +#: common/models.py:697 company/forms.py:131 msgid "Price break quantity" msgstr "" -#: common/models.py:691 company/templates/company/supplier_part_pricing.html:82 +#: common/models.py:705 company/templates/company/supplier_part_pricing.html:82 #: part/templates/part/sale_prices.html:90 templates/js/bom.js:255 msgid "Price" msgstr "" -#: common/models.py:692 +#: common/models.py:706 msgid "Unit price at specified quantity" msgstr "" -#: common/models.py:715 +#: common/models.py:729 msgid "Default" msgstr "" @@ -1526,11 +1551,19 @@ msgstr "" msgid "Default currency used for this company" msgstr "" -#: company/forms.py:80 +#: company/forms.py:75 part/forms.py:46 +msgid "URL" +msgstr "" + +#: company/forms.py:76 part/forms.py:47 +msgid "Image URL" +msgstr "" + +#: company/forms.py:98 msgid "Single Price" msgstr "" -#: company/forms.py:82 +#: company/forms.py:100 msgid "Single quantity price" msgstr "" @@ -1542,7 +1575,7 @@ msgstr "" msgid "Description of the company" msgstr "" -#: company/models.py:100 company/templates/company/company_base.html:57 +#: company/models.py:100 company/templates/company/company_base.html:70 #: company/templates/company/detail.html:31 templates/js/company.js:60 msgid "Website" msgstr "" @@ -1551,7 +1584,7 @@ msgstr "" msgid "Company website URL" msgstr "" -#: company/models.py:103 company/templates/company/company_base.html:64 +#: company/models.py:103 company/templates/company/company_base.html:77 msgid "Address" msgstr "" @@ -1567,7 +1600,7 @@ msgstr "" msgid "Contact phone number" msgstr "" -#: company/models.py:111 company/templates/company/company_base.html:78 +#: company/models.py:111 company/templates/company/company_base.html:91 msgid "Email" msgstr "" @@ -1575,7 +1608,7 @@ msgstr "" msgid "Contact email address" msgstr "" -#: company/models.py:114 company/templates/company/company_base.html:85 +#: company/models.py:114 company/templates/company/company_base.html:98 msgid "Contact" msgstr "" @@ -1604,7 +1637,7 @@ msgid "Currency" msgstr "" #: company/models.py:313 stock/models.py:370 -#: stock/templates/stock/item_base.html:214 +#: stock/templates/stock/item_base.html:220 msgid "Base Part" msgstr "" @@ -1615,9 +1648,9 @@ msgstr "" #: company/models.py:323 company/templates/company/detail.html:60 #: company/templates/company/supplier_part_base.html:83 #: company/templates/company/supplier_part_detail.html:25 -#: order/templates/order/order_base.html:89 +#: order/templates/order/order_base.html:92 #: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170 -#: stock/templates/stock/item_base.html:331 templates/js/company.js:48 +#: stock/templates/stock/item_base.html:337 templates/js/company.js:48 #: templates/js/company.js:164 templates/js/order.js:170 msgid "Supplier" msgstr "" @@ -1659,7 +1692,7 @@ msgid "Manufacturer part number" msgstr "" #: company/models.py:353 part/models.py:742 -#: report/templates/report/inventree_build_order_base.html:168 +#: report/templates/report/inventree_build_order_base.html:165 #: templates/js/company.js:208 templates/js/part.js:430 msgid "Link" msgstr "" @@ -1674,6 +1707,8 @@ msgstr "" #: company/models.py:365 company/templates/company/supplier_part_base.html:113 #: company/templates/company/supplier_part_detail.html:38 +#: report/templates/report/inventree_po_report.html:93 +#: report/templates/report/inventree_so_report.html:93 msgid "Note" msgstr "" @@ -1691,19 +1726,29 @@ msgstr "" msgid "Assigned Stock" msgstr "" -#: company/templates/company/company_base.html:7 -#: company/templates/company/company_base.html:22 +#: company/templates/company/company_base.html:9 +#: company/templates/company/company_base.html:35 #: templates/InvenTree/search.html:288 templates/js/company.js:33 msgid "Company" msgstr "" -#: company/templates/company/company_base.html:51 +#: company/templates/company/company_base.html:25 +#: part/templates/part/part_thumb.html:21 +msgid "Upload new image" +msgstr "" + +#: company/templates/company/company_base.html:27 +#: part/templates/part/part_thumb.html:23 +msgid "Download image from URL" +msgstr "" + +#: company/templates/company/company_base.html:64 #: company/templates/company/detail.html:10 #: company/templates/company/navbar.html:12 msgid "Company Details" msgstr "" -#: company/templates/company/company_base.html:71 +#: company/templates/company/company_base.html:84 msgid "Phone" msgstr "" @@ -1720,8 +1765,8 @@ msgid "Uses default currency" msgstr "" #: company/templates/company/detail.html:65 -#: order/templates/order/sales_order_base.html:89 stock/models.py:412 -#: stock/models.py:413 stock/templates/stock/item_base.html:241 +#: order/templates/order/sales_order_base.html:92 stock/models.py:412 +#: stock/models.py:413 stock/templates/stock/item_base.html:247 #: templates/js/company.js:40 templates/js/order.js:267 msgid "Customer" msgstr "" @@ -1770,23 +1815,23 @@ msgstr "" msgid "Create new Part" msgstr "" -#: company/templates/company/detail_part.html:72 company/views.py:56 -#: order/templates/order/purchase_orders.html:164 +#: company/templates/company/detail_part.html:72 company/views.py:62 +#: order/templates/order/purchase_orders.html:182 #: part/templates/part/supplier.html:50 msgid "New Supplier" msgstr "" -#: company/templates/company/detail_part.html:73 company/views.py:195 -#: order/templates/order/purchase_orders.html:165 +#: company/templates/company/detail_part.html:73 company/views.py:279 +#: order/templates/order/purchase_orders.html:183 msgid "Create new Supplier" msgstr "" -#: company/templates/company/detail_part.html:78 company/views.py:63 +#: company/templates/company/detail_part.html:78 company/views.py:69 #: part/templates/part/supplier.html:56 msgid "New Manufacturer" msgstr "" -#: company/templates/company/detail_part.html:79 company/views.py:198 +#: company/templates/company/detail_part.html:79 company/views.py:282 msgid "Create new Manufacturer" msgstr "" @@ -1897,28 +1942,28 @@ msgid "Are you sure you want to delete the following Supplier Parts?" msgstr "" #: company/templates/company/purchase_orders.html:18 -#: order/templates/order/purchase_orders.html:19 +#: order/templates/order/purchase_orders.html:20 msgid "Create new purchase order" msgstr "" #: company/templates/company/purchase_orders.html:19 -#: order/templates/order/purchase_orders.html:20 +#: order/templates/order/purchase_orders.html:21 msgid "New Purchase Order" msgstr "" #: company/templates/company/sales_orders.html:19 -#: order/templates/order/sales_orders.html:19 +#: order/templates/order/sales_orders.html:20 msgid "Create new sales order" msgstr "" #: company/templates/company/sales_orders.html:20 -#: order/templates/order/sales_orders.html:20 +#: order/templates/order/sales_orders.html:21 msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:6 #: company/templates/company/supplier_part_base.html:19 stock/models.py:379 -#: stock/templates/stock/item_base.html:336 templates/js/company.js:180 +#: stock/templates/stock/item_base.html:342 templates/js/company.js:180 msgid "Supplier Part" msgstr "" @@ -1946,7 +1991,7 @@ msgid "Internal Part" msgstr "" #: company/templates/company/supplier_part_base.html:106 stock/models.py:394 -#: stock/templates/stock/item_base.html:289 templates/js/stock.js:663 +#: stock/templates/stock/item_base.html:295 templates/js/stock.js:663 msgid "Packaging" msgstr "" @@ -1959,8 +2004,8 @@ msgstr "" msgid "Pricing Information" msgstr "" -#: company/templates/company/supplier_part_pricing.html:19 company/views.py:485 -#: part/templates/part/sale_prices.html:17 part/views.py:2511 +#: company/templates/company/supplier_part_pricing.html:19 company/views.py:569 +#: part/templates/part/sale_prices.html:17 part/views.py:2618 msgid "Add Price Break" msgstr "" @@ -1979,95 +2024,107 @@ msgstr "" msgid "Delete price break" msgstr "" -#: company/views.py:55 part/templates/part/navbar.html:72 +#: company/views.py:61 part/templates/part/navbar.html:72 #: part/templates/part/navbar.html:75 templates/InvenTree/search.html:291 #: templates/navbar.html:35 msgid "Suppliers" msgstr "" -#: company/views.py:62 templates/InvenTree/search.html:308 +#: company/views.py:68 templates/InvenTree/search.html:308 #: templates/navbar.html:36 msgid "Manufacturers" msgstr "" -#: company/views.py:69 templates/InvenTree/search.html:321 +#: company/views.py:75 templates/InvenTree/search.html:321 #: templates/navbar.html:45 msgid "Customers" msgstr "" -#: company/views.py:70 +#: company/views.py:76 order/templates/order/sales_orders.html:184 msgid "New Customer" msgstr "" -#: company/views.py:78 +#: company/views.py:84 msgid "Companies" msgstr "" -#: company/views.py:79 +#: company/views.py:85 msgid "New Company" msgstr "" -#: company/views.py:157 +#: company/views.py:167 part/views.py:848 +msgid "Download Image" +msgstr "" + +#: company/views.py:196 part/views.py:880 +msgid "Image size exceeds maximum allowable size for download" +msgstr "" + +#: company/views.py:212 part/views.py:896 +msgid "Supplied URL is not a valid image file" +msgstr "" + +#: company/views.py:241 msgid "Update Company Image" msgstr "" -#: company/views.py:163 +#: company/views.py:247 msgid "Updated company image" msgstr "" -#: company/views.py:173 +#: company/views.py:257 msgid "Edit Company" msgstr "" -#: company/views.py:178 +#: company/views.py:262 msgid "Edited company information" msgstr "" -#: company/views.py:201 +#: company/views.py:285 order/templates/order/sales_orders.html:185 msgid "Create new Customer" msgstr "" -#: company/views.py:203 +#: company/views.py:287 msgid "Create new Company" msgstr "" -#: company/views.py:230 +#: company/views.py:314 msgid "Created new company" msgstr "" -#: company/views.py:240 +#: company/views.py:324 msgid "Delete Company" msgstr "" -#: company/views.py:246 +#: company/views.py:330 msgid "Company was deleted" msgstr "" -#: company/views.py:271 +#: company/views.py:355 msgid "Edit Supplier Part" msgstr "" -#: company/views.py:294 templates/js/stock.js:1083 +#: company/views.py:378 templates/js/stock.js:1083 msgid "Create new Supplier Part" msgstr "" -#: company/views.py:413 +#: company/views.py:497 msgid "Delete Supplier Part" msgstr "" -#: company/views.py:490 part/views.py:2515 +#: company/views.py:574 part/views.py:2622 msgid "Added new price break" msgstr "" -#: company/views.py:546 part/views.py:2559 +#: company/views.py:630 part/views.py:2666 msgid "Edit Price Break" msgstr "" -#: company/views.py:561 part/views.py:2573 +#: company/views.py:645 part/views.py:2680 msgid "Delete Price Break" msgstr "" -#: label/api.py:56 report/api.py:162 +#: label/api.py:56 report/api.py:201 msgid "No valid objects provided to template" msgstr "" @@ -2087,7 +2144,7 @@ msgstr "" msgid "Label template file" msgstr "" -#: label/models.py:123 report/models.py:257 +#: label/models.py:123 report/models.py:274 msgid "Enabled" msgstr "" @@ -2111,24 +2168,25 @@ msgstr "" msgid "Query filters (comma-separated list of key=value pairs" msgstr "" -#: label/models.py:223 label/models.py:274 report/models.py:277 +#: label/models.py:223 label/models.py:274 report/models.py:294 +#: report/models.py:415 report/models.py:449 msgid "Filters" msgstr "" -#: order/forms.py:25 order/templates/order/order_base.html:44 +#: order/forms.py:25 order/templates/order/order_base.html:47 msgid "Place order" msgstr "" -#: order/forms.py:36 order/templates/order/order_base.html:51 +#: order/forms.py:36 order/templates/order/order_base.html:54 msgid "Mark order as complete" msgstr "" -#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:56 -#: order/templates/order/sales_order_base.html:56 +#: order/forms.py:47 order/forms.py:58 order/templates/order/order_base.html:59 +#: order/templates/order/sales_order_base.html:59 msgid "Cancel order" msgstr "" -#: order/forms.py:69 order/templates/order/sales_order_base.html:53 +#: order/forms.py:69 order/templates/order/sales_order_base.html:56 msgid "Ship order" msgstr "" @@ -2144,153 +2202,158 @@ msgstr "" msgid "Target date for order delivery. Order will be overdue after this date." msgstr "" -#: order/forms.py:134 +#: order/forms.py:135 msgid "Enter sales order number" msgstr "" -#: order/forms.py:140 order/models.py:438 +#: order/forms.py:141 order/models.py:448 msgid "" "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:98 +#: order/models.py:99 msgid "Order reference" msgstr "" -#: order/models.py:100 +#: order/models.py:101 msgid "Order description" msgstr "" -#: order/models.py:102 +#: order/models.py:103 msgid "Link to external page" msgstr "" -#: order/models.py:112 +#: order/models.py:117 +msgid "User or group responsible for this order" +msgstr "" + +#: order/models.py:122 msgid "Order notes" msgstr "" -#: order/models.py:171 order/models.py:431 +#: order/models.py:181 order/models.py:441 msgid "Purchase order status" msgstr "" -#: order/models.py:179 +#: order/models.py:189 msgid "Company from which the items are being ordered" msgstr "" -#: order/models.py:182 +#: order/models.py:192 msgid "Supplier order reference code" msgstr "" -#: order/models.py:193 +#: order/models.py:203 msgid "Issue Date" msgstr "" -#: order/models.py:194 +#: order/models.py:204 msgid "Date order was issued" msgstr "" -#: order/models.py:199 +#: order/models.py:209 msgid "Target Delivery Date" msgstr "" -#: order/models.py:200 +#: order/models.py:210 msgid "" "Expected date for order delivery. Order will be overdue after this date." msgstr "" -#: order/models.py:205 +#: order/models.py:215 msgid "Completion Date" msgstr "" -#: order/models.py:206 +#: order/models.py:216 msgid "Date order was completed" msgstr "" -#: order/models.py:230 order/models.py:329 part/views.py:1479 +#: order/models.py:240 order/models.py:339 part/views.py:1586 #: stock/models.py:269 stock/models.py:948 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:235 +#: order/models.py:245 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:324 +#: order/models.py:334 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:346 +#: order/models.py:356 msgid "Received items" msgstr "" -#: order/models.py:427 +#: order/models.py:437 msgid "Company to which the items are being sold" msgstr "" -#: order/models.py:433 +#: order/models.py:443 msgid "Customer order reference code" msgstr "" -#: order/models.py:491 +#: order/models.py:501 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:578 +#: order/models.py:588 msgid "Item quantity" msgstr "" -#: order/models.py:580 +#: order/models.py:590 msgid "Line item reference" msgstr "" -#: order/models.py:582 +#: order/models.py:592 msgid "Line item notes" msgstr "" -#: order/models.py:608 order/templates/order/order_base.html:9 +#: order/models.py:618 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:24 -#: stock/templates/stock/item_base.html:303 templates/js/order.js:148 +#: report/templates/report/inventree_po_report.html:77 +#: stock/templates/stock/item_base.html:309 templates/js/order.js:148 msgid "Purchase Order" msgstr "" -#: order/models.py:621 +#: order/models.py:631 msgid "Supplier part" msgstr "" -#: order/models.py:624 +#: order/models.py:634 msgid "Number of items received" msgstr "" -#: order/models.py:631 stock/models.py:505 -#: stock/templates/stock/item_base.html:310 +#: order/models.py:641 stock/models.py:505 +#: stock/templates/stock/item_base.html:316 msgid "Purchase Price" msgstr "" -#: order/models.py:632 +#: order/models.py:642 msgid "Unit purchase price" msgstr "" -#: order/models.py:727 +#: order/models.py:737 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:729 +#: order/models.py:739 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:732 +#: order/models.py:742 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:742 +#: order/models.py:752 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:758 +#: order/models.py:768 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:761 +#: order/models.py:771 msgid "Enter stock allocation quantity" msgstr "" @@ -2300,46 +2363,51 @@ msgstr "" msgid "Are you sure you want to delete this attachment?" msgstr "" -#: order/templates/order/order_base.html:40 +#: order/templates/order/order_base.html:39 +#: order/templates/order/sales_order_base.html:48 +msgid "Print" +msgstr "" + +#: order/templates/order/order_base.html:43 msgid "Edit order information" msgstr "" -#: order/templates/order/order_base.html:48 +#: order/templates/order/order_base.html:51 msgid "Receive items" msgstr "" -#: order/templates/order/order_base.html:61 +#: order/templates/order/order_base.html:64 msgid "Export order to file" msgstr "" -#: order/templates/order/order_base.html:69 +#: order/templates/order/order_base.html:72 #: order/templates/order/po_navbar.html:11 msgid "Purchase Order Details" msgstr "" -#: order/templates/order/order_base.html:74 -#: order/templates/order/sales_order_base.html:74 +#: order/templates/order/order_base.html:77 +#: order/templates/order/sales_order_base.html:77 msgid "Order Reference" msgstr "" -#: order/templates/order/order_base.html:79 -#: order/templates/order/sales_order_base.html:79 +#: order/templates/order/order_base.html:82 +#: order/templates/order/sales_order_base.html:82 msgid "Order Status" msgstr "" -#: order/templates/order/order_base.html:95 templates/js/order.js:179 +#: order/templates/order/order_base.html:98 templates/js/order.js:179 msgid "Supplier Reference" msgstr "" -#: order/templates/order/order_base.html:114 -#: report/templates/report/inventree_build_order_base.html:125 +#: order/templates/order/order_base.html:117 +#: report/templates/report/inventree_build_order_base.html:122 msgid "Issued" msgstr "" -#: order/templates/order/order_base.html:128 +#: order/templates/order/order_base.html:131 #: order/templates/order/purchase_order_detail.html:207 #: order/templates/order/receive_parts.html:22 -#: order/templates/order/sales_order_base.html:128 +#: order/templates/order/sales_order_base.html:131 msgid "Received" msgstr "" @@ -2451,6 +2519,11 @@ msgstr "" msgid "Receive line item" msgstr "" +#: order/templates/order/purchase_orders.html:24 +#: order/templates/order/sales_orders.html:24 +msgid "Print Order Reports" +msgstr "" + #: order/templates/order/receive_parts.html:8 msgid "Receive outstanding parts for" msgstr "" @@ -2480,16 +2553,16 @@ msgstr "" msgid "This SalesOrder has not been fully allocated" msgstr "" -#: order/templates/order/sales_order_base.html:61 +#: order/templates/order/sales_order_base.html:64 msgid "Packing List" msgstr "" -#: order/templates/order/sales_order_base.html:69 +#: order/templates/order/sales_order_base.html:72 #: order/templates/order/so_navbar.html:12 msgid "Sales Order Details" msgstr "" -#: order/templates/order/sales_order_base.html:95 templates/js/order.js:275 +#: order/templates/order/sales_order_base.html:98 templates/js/order.js:275 msgid "Customer Reference" msgstr "" @@ -2507,7 +2580,7 @@ msgstr "" #: order/templates/order/sales_order_detail.html:75 #: order/templates/order/sales_order_detail.html:157 #: report/templates/report/inventree_test_report_base.html:75 -#: stock/models.py:417 stock/templates/stock/item_base.html:228 +#: stock/models.py:417 stock/templates/stock/item_base.html:234 #: templates/js/build.js:418 msgid "Serial Number" msgstr "" @@ -2727,136 +2800,136 @@ msgstr "" msgid "Available Stock" msgstr "" -#: part/bom.py:274 +#: part/bom.py:278 #, python-brace-format msgid "Unsupported file format: {f}" msgstr "" -#: part/bom.py:279 +#: part/bom.py:283 msgid "Error reading BOM file (invalid data)" msgstr "" -#: part/bom.py:281 +#: part/bom.py:285 msgid "Error reading BOM file (incorrect row size)" msgstr "" -#: part/forms.py:71 stock/forms.py:264 +#: part/forms.py:89 stock/forms.py:264 msgid "File Format" msgstr "" -#: part/forms.py:71 stock/forms.py:264 +#: part/forms.py:89 stock/forms.py:264 msgid "Select output file format" msgstr "" -#: part/forms.py:73 +#: part/forms.py:91 msgid "Cascading" msgstr "" -#: part/forms.py:73 +#: part/forms.py:91 msgid "Download cascading / multi-level BOM" msgstr "" -#: part/forms.py:75 +#: part/forms.py:93 msgid "Levels" msgstr "" -#: part/forms.py:75 +#: part/forms.py:93 msgid "Select maximum number of BOM levels to export (0 = all levels)" msgstr "" -#: part/forms.py:77 +#: part/forms.py:95 msgid "Include Parameter Data" msgstr "" -#: part/forms.py:77 +#: part/forms.py:95 msgid "Include part parameters data in exported BOM" msgstr "" -#: part/forms.py:79 +#: part/forms.py:97 msgid "Include Stock Data" msgstr "" -#: part/forms.py:79 +#: part/forms.py:97 msgid "Include part stock data in exported BOM" msgstr "" -#: part/forms.py:81 +#: part/forms.py:99 msgid "Include Supplier Data" msgstr "" -#: part/forms.py:81 +#: part/forms.py:99 msgid "Include part supplier data in exported BOM" msgstr "" -#: part/forms.py:102 part/models.py:2053 +#: part/forms.py:120 part/models.py:2053 msgid "Parent Part" msgstr "" -#: part/forms.py:103 part/templates/part/bom_duplicate.html:7 +#: part/forms.py:121 part/templates/part/bom_duplicate.html:7 msgid "Select parent part to copy BOM from" msgstr "" -#: part/forms.py:109 +#: part/forms.py:127 msgid "Clear existing BOM items" msgstr "" -#: part/forms.py:114 +#: part/forms.py:132 msgid "Confirm BOM duplication" msgstr "" -#: part/forms.py:132 +#: part/forms.py:150 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:144 +#: part/forms.py:162 msgid "Select BOM file to upload" msgstr "" -#: part/forms.py:163 +#: part/forms.py:181 msgid "Related Part" msgstr "" -#: part/forms.py:182 +#: part/forms.py:200 msgid "Select part category" msgstr "" -#: part/forms.py:199 +#: part/forms.py:217 msgid "Duplicate all BOM data for this part" msgstr "" -#: part/forms.py:200 +#: part/forms.py:218 msgid "Copy BOM" msgstr "" -#: part/forms.py:205 +#: part/forms.py:223 msgid "Duplicate all parameter data for this part" msgstr "" -#: part/forms.py:206 +#: part/forms.py:224 msgid "Copy Parameters" msgstr "" -#: part/forms.py:211 +#: part/forms.py:229 msgid "Confirm part creation" msgstr "" -#: part/forms.py:216 +#: part/forms.py:234 msgid "Include category parameter templates" msgstr "" -#: part/forms.py:221 +#: part/forms.py:239 msgid "Include parent categories parameter templates" msgstr "" -#: part/forms.py:301 +#: part/forms.py:319 msgid "Add parameter template to same level categories" msgstr "" -#: part/forms.py:305 +#: part/forms.py:323 msgid "Add parameter template to all categories" msgstr "" -#: part/forms.py:350 +#: part/forms.py:368 msgid "Input quantity for price calculation" msgstr "" @@ -2960,7 +3033,7 @@ msgstr "" msgid "Part revision or version number" msgstr "" -#: part/models.py:737 part/templates/part/detail.html:35 report/models.py:181 +#: part/models.py:737 part/templates/part/detail.html:35 report/models.py:198 #: templates/js/part.js:164 msgid "Revision" msgstr "" @@ -3024,7 +3097,7 @@ msgstr "" #: part/models.py:859 part/templates/part/detail.html:227 #: templates/js/table_filters.js:20 templates/js/table_filters.js:60 -#: templates/js/table_filters.js:209 templates/js/table_filters.js:278 +#: templates/js/table_filters.js:214 templates/js/table_filters.js:283 msgid "Active" msgstr "" @@ -3069,7 +3142,7 @@ msgid "Enter description for this test" msgstr "" #: part/models.py:1974 templates/js/part.js:570 -#: templates/js/table_filters.js:195 +#: templates/js/table_filters.js:200 msgid "Required" msgstr "" @@ -3159,7 +3232,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2243 part/views.py:1485 part/views.py:1537 +#: part/models.py:2243 part/views.py:1592 part/views.py:1644 #: stock/models.py:259 msgid "Quantity must be integer value for trackable parts" msgstr "" @@ -3197,7 +3270,7 @@ msgstr "" #: part/templates/part/allocation.html:49 #: stock/templates/stock/item_base.html:8 #: stock/templates/stock/item_base.html:89 -#: stock/templates/stock/item_base.html:318 +#: stock/templates/stock/item_base.html:324 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:771 #: templates/js/stock.js:923 templates/js/stock.js:1181 msgid "Stock Item" @@ -3248,7 +3321,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:61 part/views.py:1776 +#: part/templates/part/bom.html:61 part/views.py:1883 msgid "Export Bill of Materials" msgstr "" @@ -3264,7 +3337,7 @@ msgstr "" msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/bom.html:160 part/views.py:579 +#: part/templates/part/bom.html:160 part/views.py:584 #: templates/js/stock.js:1077 msgid "Create New Part" msgstr "" @@ -3366,7 +3439,7 @@ msgstr "" msgid "All parts" msgstr "" -#: part/templates/part/category.html:25 part/views.py:2157 +#: part/templates/part/category.html:25 part/views.py:2264 msgid "Create new part category" msgstr "" @@ -3486,7 +3559,7 @@ msgstr "" msgid "Part Parameters" msgstr "" -#: part/templates/part/copy_part.html:9 part/views.py:455 +#: part/templates/part/copy_part.html:9 part/views.py:460 msgid "Duplicate Part" msgstr "" @@ -3628,7 +3701,7 @@ msgstr "" msgid "Part Test Templates" msgstr "" -#: part/templates/part/navbar.html:103 stock/templates/stock/item_base.html:376 +#: part/templates/part/navbar.html:103 stock/templates/stock/item_base.html:382 msgid "Tests" msgstr "" @@ -3647,7 +3720,7 @@ msgstr "" #: part/templates/part/params.html:18 #: templates/InvenTree/settings/category.html:29 -#: templates/InvenTree/settings/part.html:43 +#: templates/InvenTree/settings/part.html:44 msgid "New Parameter" msgstr "" @@ -3663,7 +3736,7 @@ msgid "Edit" msgstr "" #: part/templates/part/params.html:44 part/templates/part/related.html:44 -#: part/templates/part/supplier.html:22 users/models.py:168 +#: part/templates/part/supplier.html:22 users/models.py:170 msgid "Delete" msgstr "" @@ -3726,7 +3799,7 @@ msgstr "" msgid "Delete part" msgstr "" -#: part/templates/part/part_base.html:122 templates/js/table_filters.js:129 +#: part/templates/part/part_base.html:122 templates/js/table_filters.js:134 msgid "In Stock" msgstr "" @@ -3754,14 +3827,10 @@ msgstr "" msgid "Add Test Template" msgstr "" -#: part/templates/part/part_thumb.html:16 +#: part/templates/part/part_thumb.html:20 msgid "Select from existing images" msgstr "" -#: part/templates/part/part_thumb.html:17 -msgid "Upload new image" -msgstr "" - #: part/templates/part/related.html:18 msgid "Add Related" msgstr "" @@ -3847,283 +3916,296 @@ msgstr "" msgid "New Variant" msgstr "" -#: part/views.py:84 +#: part/views.py:89 msgid "Add Related Part" msgstr "" -#: part/views.py:139 +#: part/views.py:144 msgid "Delete Related Part" msgstr "" -#: part/views.py:153 +#: part/views.py:158 msgid "Add part attachment" msgstr "" -#: part/views.py:206 templates/attachment_table.html:32 +#: part/views.py:211 templates/attachment_table.html:32 msgid "Edit attachment" msgstr "" -#: part/views.py:210 +#: part/views.py:215 msgid "Part attachment updated" msgstr "" -#: part/views.py:225 +#: part/views.py:230 msgid "Delete Part Attachment" msgstr "" -#: part/views.py:233 +#: part/views.py:238 msgid "Deleted part attachment" msgstr "" -#: part/views.py:242 +#: part/views.py:247 msgid "Create Test Template" msgstr "" -#: part/views.py:269 +#: part/views.py:274 msgid "Edit Test Template" msgstr "" -#: part/views.py:283 +#: part/views.py:288 msgid "Delete Test Template" msgstr "" -#: part/views.py:290 +#: part/views.py:295 msgid "Set Part Category" msgstr "" -#: part/views.py:340 +#: part/views.py:345 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:375 +#: part/views.py:380 msgid "Create Variant" msgstr "" -#: part/views.py:460 +#: part/views.py:465 msgid "Copied part" msgstr "" -#: part/views.py:514 part/views.py:652 +#: part/views.py:519 part/views.py:657 msgid "Possible matches exist - confirm creation of new part" msgstr "" -#: part/views.py:584 +#: part/views.py:589 msgid "Created new part" msgstr "" -#: part/views.py:820 +#: part/views.py:825 msgid "Part QR Code" msgstr "" -#: part/views.py:839 +#: part/views.py:927 msgid "Upload Part Image" msgstr "" -#: part/views.py:845 part/views.py:880 +#: part/views.py:933 part/views.py:968 msgid "Updated part image" msgstr "" -#: part/views.py:854 +#: part/views.py:942 msgid "Select Part Image" msgstr "" -#: part/views.py:883 +#: part/views.py:971 msgid "Part image not found" msgstr "" -#: part/views.py:894 +#: part/views.py:982 msgid "Edit Part Properties" msgstr "" -#: part/views.py:923 +#: part/views.py:1017 msgid "Duplicate BOM" msgstr "" -#: part/views.py:953 +#: part/views.py:1047 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:974 +#: part/views.py:1068 msgid "Validate BOM" msgstr "" -#: part/views.py:995 +#: part/views.py:1089 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:1006 +#: part/views.py:1100 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:1140 +#: part/views.py:1234 msgid "No BOM file provided" msgstr "" -#: part/views.py:1488 +#: part/views.py:1595 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1513 part/views.py:1516 +#: part/views.py:1620 part/views.py:1623 msgid "Select valid part" msgstr "" -#: part/views.py:1522 +#: part/views.py:1629 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1560 +#: part/views.py:1667 msgid "Select a part" msgstr "" -#: part/views.py:1566 +#: part/views.py:1673 msgid "Selected part creates a circular BOM" msgstr "" -#: part/views.py:1570 +#: part/views.py:1677 msgid "Specify quantity" msgstr "" -#: part/views.py:1826 +#: part/views.py:1933 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1833 +#: part/views.py:1940 msgid "Part was deleted" msgstr "" -#: part/views.py:1842 +#: part/views.py:1949 msgid "Part Pricing" msgstr "" -#: part/views.py:1956 +#: part/views.py:2063 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1966 +#: part/views.py:2073 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1973 +#: part/views.py:2080 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1981 +#: part/views.py:2088 msgid "Create Part Parameter" msgstr "" -#: part/views.py:2031 +#: part/views.py:2138 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:2045 +#: part/views.py:2152 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:2105 +#: part/views.py:2212 msgid "Edit Part Category" msgstr "" -#: part/views.py:2143 +#: part/views.py:2250 msgid "Delete Part Category" msgstr "" -#: part/views.py:2149 +#: part/views.py:2256 msgid "Part category was deleted" msgstr "" -#: part/views.py:2201 +#: part/views.py:2308 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:2302 +#: part/views.py:2409 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:2358 +#: part/views.py:2465 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:2377 +#: part/views.py:2484 msgid "Create BOM Item" msgstr "" -#: part/views.py:2447 +#: part/views.py:2554 msgid "Edit BOM item" msgstr "" -#: part/views.py:2503 +#: part/views.py:2610 msgid "Confim BOM item deletion" msgstr "" -#: report/models.py:163 +#: report/models.py:180 msgid "Template name" msgstr "" -#: report/models.py:169 +#: report/models.py:186 msgid "Report template file" msgstr "" -#: report/models.py:176 +#: report/models.py:193 msgid "Report template description" msgstr "" -#: report/models.py:182 +#: report/models.py:199 msgid "Report revision number (auto-increments)" msgstr "" -#: report/models.py:258 +#: report/models.py:275 msgid "Report template is enabled" msgstr "" -#: report/models.py:278 +#: report/models.py:295 msgid "StockItem query filters (comma-separated list of key=value pairs)" msgstr "" -#: report/models.py:286 +#: report/models.py:303 msgid "Include Installed Tests" msgstr "" -#: report/models.py:287 +#: report/models.py:304 msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:330 +#: report/models.py:347 msgid "Build Filters" msgstr "" -#: report/models.py:331 +#: report/models.py:348 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:368 +#: report/models.py:385 msgid "Part Filters" msgstr "" -#: report/models.py:369 +#: report/models.py:386 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:415 +#: report/models.py:416 +msgid "Purchase order query filters" +msgstr "" + +#: report/models.py:450 +msgid "Sales order query filters" +msgstr "" + +#: report/models.py:500 msgid "Report snippet file" msgstr "" -#: report/models.py:419 +#: report/models.py:504 msgid "Snippet file description" msgstr "" -#: report/models.py:454 +#: report/models.py:539 msgid "Report asset file" msgstr "" -#: report/models.py:457 +#: report/models.py:542 msgid "Asset file description" msgstr "" -#: report/templates/report/inventree_build_order_base.html:150 +#: report/templates/report/inventree_build_order_base.html:147 msgid "Required For" msgstr "" +#: report/templates/report/inventree_po_report.html:85 +#: report/templates/report/inventree_so_report.html:85 +msgid "Line Items" +msgstr "" + #: report/templates/report/inventree_test_report_base.html:21 msgid "Stock Item Test Report" msgstr "" @@ -4276,7 +4358,7 @@ msgstr "" msgid "Packaging this stock item is stored in" msgstr "" -#: stock/models.py:400 stock/templates/stock/item_base.html:249 +#: stock/models.py:400 stock/templates/stock/item_base.html:255 msgid "Installed In" msgstr "" @@ -4316,7 +4398,7 @@ msgstr "" msgid "Destination Sales Order" msgstr "" -#: stock/models.py:472 stock/templates/stock/item_base.html:343 +#: stock/models.py:472 stock/templates/stock/item_base.html:349 #: templates/js/stock.js:652 msgid "Expiry Date" msgstr "" @@ -4433,7 +4515,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1645 templates/js/table_filters.js:185 +#: stock/models.py:1645 templates/js/table_filters.js:190 msgid "Test result" msgstr "" @@ -4507,12 +4589,12 @@ msgid "" msgstr "" #: stock/templates/stock/item_base.html:91 -#: stock/templates/stock/item_base.html:347 templates/js/table_filters.js:118 +#: stock/templates/stock/item_base.html:353 templates/js/table_filters.js:123 msgid "Expired" msgstr "" #: stock/templates/stock/item_base.html:95 -#: stock/templates/stock/item_base.html:349 templates/js/table_filters.js:123 +#: stock/templates/stock/item_base.html:355 templates/js/table_filters.js:128 msgid "Stale" msgstr "" @@ -4547,97 +4629,97 @@ msgstr "" msgid "Count stock" msgstr "" -#: stock/templates/stock/item_base.html:161 templates/stock_table.html:53 +#: stock/templates/stock/item_base.html:163 templates/stock_table.html:53 msgid "Add stock" msgstr "" -#: stock/templates/stock/item_base.html:162 templates/stock_table.html:54 +#: stock/templates/stock/item_base.html:166 templates/stock_table.html:54 msgid "Remove stock" msgstr "" -#: stock/templates/stock/item_base.html:164 +#: stock/templates/stock/item_base.html:169 msgid "Transfer stock" msgstr "" -#: stock/templates/stock/item_base.html:166 +#: stock/templates/stock/item_base.html:172 msgid "Serialize stock" msgstr "" -#: stock/templates/stock/item_base.html:170 +#: stock/templates/stock/item_base.html:176 msgid "Assign to customer" msgstr "" -#: stock/templates/stock/item_base.html:173 +#: stock/templates/stock/item_base.html:179 msgid "Return to stock" msgstr "" -#: stock/templates/stock/item_base.html:177 templates/js/stock.js:1218 +#: stock/templates/stock/item_base.html:183 templates/js/stock.js:1218 msgid "Uninstall stock item" msgstr "" -#: stock/templates/stock/item_base.html:177 +#: stock/templates/stock/item_base.html:183 msgid "Uninstall" msgstr "" -#: stock/templates/stock/item_base.html:186 +#: stock/templates/stock/item_base.html:192 #: stock/templates/stock/location.html:55 msgid "Stock actions" msgstr "" -#: stock/templates/stock/item_base.html:189 +#: stock/templates/stock/item_base.html:195 msgid "Convert to variant" msgstr "" -#: stock/templates/stock/item_base.html:192 +#: stock/templates/stock/item_base.html:198 msgid "Duplicate stock item" msgstr "" -#: stock/templates/stock/item_base.html:194 +#: stock/templates/stock/item_base.html:200 msgid "Edit stock item" msgstr "" -#: stock/templates/stock/item_base.html:197 +#: stock/templates/stock/item_base.html:203 msgid "Delete stock item" msgstr "" -#: stock/templates/stock/item_base.html:209 +#: stock/templates/stock/item_base.html:215 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:268 templates/js/build.js:442 +#: stock/templates/stock/item_base.html:274 templates/js/build.js:442 msgid "No location set" msgstr "" -#: stock/templates/stock/item_base.html:275 +#: stock/templates/stock/item_base.html:281 msgid "Barcode Identifier" msgstr "" -#: stock/templates/stock/item_base.html:296 templates/InvenTree/search.html:167 +#: stock/templates/stock/item_base.html:302 templates/InvenTree/search.html:167 #: templates/js/build.js:655 templates/navbar.html:29 msgid "Build" msgstr "" -#: stock/templates/stock/item_base.html:317 +#: stock/templates/stock/item_base.html:323 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:347 +#: stock/templates/stock/item_base.html:353 msgid "This StockItem expired on" msgstr "" -#: stock/templates/stock/item_base.html:349 +#: stock/templates/stock/item_base.html:355 msgid "This StockItem expires on" msgstr "" -#: stock/templates/stock/item_base.html:356 templates/js/stock.js:658 +#: stock/templates/stock/item_base.html:362 templates/js/stock.js:658 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:361 +#: stock/templates/stock/item_base.html:367 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:365 +#: stock/templates/stock/item_base.html:371 msgid "No stocktake performed" msgstr "" @@ -5096,12 +5178,12 @@ msgid "Default Value" msgstr "" #: templates/InvenTree/settings/category.html:70 -#: templates/InvenTree/settings/part.html:80 +#: templates/InvenTree/settings/part.html:81 msgid "Edit Template" msgstr "" #: templates/InvenTree/settings/category.html:71 -#: templates/InvenTree/settings/part.html:81 +#: templates/InvenTree/settings/part.html:82 msgid "Delete Template" msgstr "" @@ -5109,7 +5191,7 @@ msgstr "" msgid "Global InvenTree Settings" msgstr "" -#: templates/InvenTree/settings/global.html:25 +#: templates/InvenTree/settings/global.html:26 msgid "Barcode Settings" msgstr "" @@ -5125,11 +5207,11 @@ msgstr "" msgid "Part Options" msgstr "" -#: templates/InvenTree/settings/part.html:39 +#: templates/InvenTree/settings/part.html:40 msgid "Part Parameter Templates" msgstr "" -#: templates/InvenTree/settings/part.html:60 +#: templates/InvenTree/settings/part.html:61 msgid "No part parameter templates found" msgstr "" @@ -5294,6 +5376,22 @@ msgstr "" msgid "Delete attachment" msgstr "" +#: templates/image_download.html:8 +msgid "Specify URL for downloading image" +msgstr "" + +#: templates/image_download.html:11 +msgid "Must be a valid image URL" +msgstr "" + +#: templates/image_download.html:12 +msgid "Remote server must be accessible" +msgstr "" + +#: templates/image_download.html:13 +msgid "Remote image must not exceed maximum allowable file size" +msgstr "" + #: templates/js/barcode.js:8 msgid "Scan barcode data here using wedge scanner" msgstr "" @@ -5322,7 +5420,7 @@ msgstr "" msgid "Unknown response from server" msgstr "" -#: templates/js/barcode.js:119 templates/js/modals.js:856 +#: templates/js/barcode.js:119 templates/js/modals.js:857 msgid "Invalid server response" msgstr "" @@ -5553,11 +5651,11 @@ msgstr "" msgid "Show Error Information" msgstr "" -#: templates/js/modals.js:473 templates/modals.html:66 +#: templates/js/modals.js:473 templates/modals.html:73 msgid "Accept" msgstr "" -#: templates/js/modals.js:474 templates/modals.html:65 +#: templates/js/modals.js:474 templates/modals.html:72 msgid "Cancel" msgstr "" @@ -5565,81 +5663,81 @@ msgstr "" msgid "Loading Data" msgstr "" -#: templates/js/modals.js:549 templates/js/modals.js:807 -#: templates/modals.html:22 templates/modals.html:46 +#: templates/js/modals.js:549 templates/js/modals.js:808 +#: templates/modals.html:29 templates/modals.html:53 msgid "Submit" msgstr "" -#: templates/js/modals.js:550 templates/js/modals.js:808 -#: templates/modals.html:21 templates/modals.html:45 templates/modals.html:84 +#: templates/js/modals.js:550 templates/js/modals.js:809 +#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93 msgid "Close" msgstr "" -#: templates/js/modals.js:759 +#: templates/js/modals.js:760 msgid "Invalid response from server" msgstr "" -#: templates/js/modals.js:759 +#: templates/js/modals.js:760 msgid "Form data missing from server response" msgstr "" -#: templates/js/modals.js:772 +#: templates/js/modals.js:773 msgid "Error posting form data" msgstr "" -#: templates/js/modals.js:856 +#: templates/js/modals.js:857 msgid "JSON response missing form data" msgstr "" -#: templates/js/modals.js:866 +#: templates/js/modals.js:867 msgid "No Response" msgstr "" -#: templates/js/modals.js:867 +#: templates/js/modals.js:868 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/modals.js:871 +#: templates/js/modals.js:872 msgid "Error 400: Bad Request" msgstr "" -#: templates/js/modals.js:872 +#: templates/js/modals.js:873 msgid "Server returned error code 400" msgstr "" -#: templates/js/modals.js:876 +#: templates/js/modals.js:877 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/modals.js:877 +#: templates/js/modals.js:878 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/modals.js:881 +#: templates/js/modals.js:882 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/modals.js:882 +#: templates/js/modals.js:883 msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/modals.js:886 +#: templates/js/modals.js:887 msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/modals.js:887 +#: templates/js/modals.js:888 msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/modals.js:891 +#: templates/js/modals.js:892 msgid "Error 408: Timeout" msgstr "" -#: templates/js/modals.js:892 +#: templates/js/modals.js:893 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/modals.js:895 +#: templates/js/modals.js:896 msgid "Error requesting form data" msgstr "" @@ -5687,7 +5785,7 @@ msgstr "" msgid "No category" msgstr "" -#: templates/js/part.js:408 templates/js/table_filters.js:291 +#: templates/js/part.js:408 templates/js/table_filters.js:296 msgid "Low stock" msgstr "" @@ -5732,7 +5830,8 @@ msgid "Stock item(s) must be selected before printing reports" msgstr "" #: templates/js/report.js:116 templates/js/report.js:169 -#: templates/js/report.js:223 +#: templates/js/report.js:223 templates/js/report.js:277 +#: templates/js/report.js:331 msgid "No Reports Found" msgstr "" @@ -5764,6 +5863,26 @@ msgstr "" msgid "No report templates found which match selected part(s)" msgstr "" +#: templates/js/report.js:259 +msgid "Select Purchase Orders" +msgstr "" + +#: templates/js/report.js:260 +msgid "Purchase Order(s) must be selected before printing report" +msgstr "" + +#: templates/js/report.js:278 templates/js/report.js:332 +msgid "No report templates found which match selected orders" +msgstr "" + +#: templates/js/report.js:313 +msgid "Select Sales Orders" +msgstr "" + +#: templates/js/report.js:314 +msgid "Sales Order(s) must be selected before printing report" +msgstr "" + #: templates/js/stock.js:38 msgid "PASS" msgstr "" @@ -5848,7 +5967,7 @@ msgstr "" msgid "Stock item is destroyed" msgstr "" -#: templates/js/stock.js:616 templates/js/table_filters.js:111 +#: templates/js/stock.js:616 templates/js/table_filters.js:116 msgid "Depleted" msgstr "" @@ -5884,7 +6003,7 @@ msgstr "" msgid "Serial" msgstr "" -#: templates/js/stock.js:1281 templates/js/table_filters.js:144 +#: templates/js/stock.js:1281 templates/js/table_filters.js:149 msgid "Installed" msgstr "" @@ -5900,36 +6019,36 @@ msgstr "" msgid "Validated" msgstr "" -#: templates/js/table_filters.js:70 templates/js/table_filters.js:154 +#: templates/js/table_filters.js:70 templates/js/table_filters.js:159 msgid "Is Serialized" msgstr "" -#: templates/js/table_filters.js:73 templates/js/table_filters.js:161 +#: templates/js/table_filters.js:73 templates/js/table_filters.js:166 msgid "Serial number GTE" msgstr "" -#: templates/js/table_filters.js:74 templates/js/table_filters.js:162 +#: templates/js/table_filters.js:74 templates/js/table_filters.js:167 msgid "Serial number greater than or equal to" msgstr "" -#: templates/js/table_filters.js:77 templates/js/table_filters.js:165 +#: templates/js/table_filters.js:77 templates/js/table_filters.js:170 msgid "Serial number LTE" msgstr "" -#: templates/js/table_filters.js:78 templates/js/table_filters.js:166 +#: templates/js/table_filters.js:78 templates/js/table_filters.js:171 msgid "Serial number less than or equal to" msgstr "" #: templates/js/table_filters.js:81 templates/js/table_filters.js:82 -#: templates/js/table_filters.js:157 templates/js/table_filters.js:158 +#: templates/js/table_filters.js:162 templates/js/table_filters.js:163 msgid "Serial number" msgstr "" -#: templates/js/table_filters.js:86 templates/js/table_filters.js:175 +#: templates/js/table_filters.js:86 templates/js/table_filters.js:180 msgid "Batch code" msgstr "" -#: templates/js/table_filters.js:96 templates/js/table_filters.js:258 +#: templates/js/table_filters.js:96 templates/js/table_filters.js:263 msgid "Active parts" msgstr "" @@ -5937,111 +6056,115 @@ msgstr "" msgid "Show stock for active parts" msgstr "" -#: templates/js/table_filters.js:101 -msgid "Is allocated" -msgstr "" - #: templates/js/table_filters.js:102 -msgid "Item has been alloacted" +msgid "Part is an assembly" msgstr "" #: templates/js/table_filters.js:106 -msgid "Include sublocations" +msgid "Is allocated" msgstr "" #: templates/js/table_filters.js:107 -msgid "Include stock in sublocations" +msgid "Item has been allocated" +msgstr "" + +#: templates/js/table_filters.js:111 +msgid "Include sublocations" msgstr "" #: templates/js/table_filters.js:112 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/table_filters.js:117 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/table_filters.js:119 +#: templates/js/table_filters.js:124 msgid "Show stock items which have expired" msgstr "" -#: templates/js/table_filters.js:124 +#: templates/js/table_filters.js:129 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/table_filters.js:130 +#: templates/js/table_filters.js:135 msgid "Show items which are in stock" msgstr "" -#: templates/js/table_filters.js:134 +#: templates/js/table_filters.js:139 msgid "In Production" msgstr "" -#: templates/js/table_filters.js:135 +#: templates/js/table_filters.js:140 msgid "Show items which are in production" msgstr "" -#: templates/js/table_filters.js:139 +#: templates/js/table_filters.js:144 msgid "Include Variants" msgstr "" -#: templates/js/table_filters.js:140 +#: templates/js/table_filters.js:145 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/table_filters.js:145 +#: templates/js/table_filters.js:150 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/table_filters.js:149 +#: templates/js/table_filters.js:154 msgid "Sent to customer" msgstr "" -#: templates/js/table_filters.js:150 +#: templates/js/table_filters.js:155 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/table_filters.js:170 templates/js/table_filters.js:171 +#: templates/js/table_filters.js:175 templates/js/table_filters.js:176 msgid "Stock status" msgstr "" -#: templates/js/table_filters.js:204 +#: templates/js/table_filters.js:209 msgid "Build status" msgstr "" -#: templates/js/table_filters.js:223 templates/js/table_filters.js:240 +#: templates/js/table_filters.js:228 templates/js/table_filters.js:245 msgid "Order status" msgstr "" -#: templates/js/table_filters.js:228 templates/js/table_filters.js:245 +#: templates/js/table_filters.js:233 templates/js/table_filters.js:250 msgid "Outstanding" msgstr "" -#: templates/js/table_filters.js:268 +#: templates/js/table_filters.js:273 msgid "Include subcategories" msgstr "" -#: templates/js/table_filters.js:269 +#: templates/js/table_filters.js:274 msgid "Include parts in subcategories" msgstr "" -#: templates/js/table_filters.js:273 +#: templates/js/table_filters.js:278 msgid "Has IPN" msgstr "" -#: templates/js/table_filters.js:274 +#: templates/js/table_filters.js:279 msgid "Part has internal part number" msgstr "" -#: templates/js/table_filters.js:279 +#: templates/js/table_filters.js:284 msgid "Show active parts" msgstr "" -#: templates/js/table_filters.js:287 +#: templates/js/table_filters.js:292 msgid "Stock available" msgstr "" -#: templates/js/table_filters.js:303 +#: templates/js/table_filters.js:308 msgid "Starred" msgstr "" -#: templates/js/table_filters.js:315 +#: templates/js/table_filters.js:320 msgid "Purchasable" msgstr "" @@ -6098,7 +6221,7 @@ msgstr "" msgid "All" msgstr "" -#: templates/modals.html:14 templates/modals.html:39 +#: templates/modals.html:21 templates/modals.html:46 msgid "Form errors exist" msgstr "" @@ -6270,38 +6393,38 @@ msgstr "" msgid "Important dates" msgstr "" -#: users/models.py:151 +#: users/models.py:153 msgid "Permission set" msgstr "" -#: users/models.py:159 +#: users/models.py:161 msgid "Group" msgstr "" -#: users/models.py:162 +#: users/models.py:164 msgid "View" msgstr "" -#: users/models.py:162 +#: users/models.py:164 msgid "Permission to view items" msgstr "" -#: users/models.py:164 +#: users/models.py:166 msgid "Add" msgstr "" -#: users/models.py:164 +#: users/models.py:166 msgid "Permission to add items" msgstr "" -#: users/models.py:166 +#: users/models.py:168 msgid "Change" msgstr "" -#: users/models.py:166 +#: users/models.py:168 msgid "Permissions to edit items" msgstr "" -#: users/models.py:168 +#: users/models.py:170 msgid "Permission to delete items" msgstr "" diff --git a/InvenTree/order/forms.py b/InvenTree/order/forms.py index b5edec386a..bb6cb40889 100644 --- a/InvenTree/order/forms.py +++ b/InvenTree/order/forms.py @@ -14,6 +14,8 @@ from InvenTree.forms import HelperForm from InvenTree.fields import RoundingDecimalFormField from InvenTree.fields import DatePickerFormField +import part.models + from stock.models import StockLocation from .models import PurchaseOrder, PurchaseOrderLineItem, PurchaseOrderAttachment from .models import SalesOrder, SalesOrderLineItem, SalesOrderAttachment @@ -211,7 +213,65 @@ class EditSalesOrderLineItemForm(HelperForm): ] +class AllocateSerialsToSalesOrderForm(forms.Form): + """ + Form for assigning stock to a sales order, + by serial number lookup + """ + + line = forms.ModelChoiceField( + queryset=SalesOrderLineItem.objects.all(), + ) + + part = forms.ModelChoiceField( + queryset=part.models.Part.objects.all(), + ) + + serials = forms.CharField( + label=_("Serial Numbers"), + required=True, + help_text=_('Enter stock item serial numbers'), + ) + + quantity = forms.IntegerField( + label=_('Quantity'), + required=True, + help_text=_('Enter quantity of stock items'), + initial=1, + min_value=1 + ) + + class Meta: + + fields = [ + 'line', + 'part', + 'serials', + 'quantity', + ] + + +class CreateSalesOrderAllocationForm(HelperForm): + """ + Form for creating a SalesOrderAllocation item. + """ + + quantity = RoundingDecimalFormField(max_digits=10, decimal_places=5) + + class Meta: + model = SalesOrderAllocation + + fields = [ + 'line', + 'item', + 'quantity', + ] + + class EditSalesOrderAllocationForm(HelperForm): + """ + Form for editing a SalesOrderAllocation item + """ quantity = RoundingDecimalFormField(max_digits=10, decimal_places=5) diff --git a/InvenTree/order/migrations/0043_auto_20210330_0013.py b/InvenTree/order/migrations/0043_auto_20210330_0013.py new file mode 100644 index 0000000000..35c4b99bcb --- /dev/null +++ b/InvenTree/order/migrations/0043_auto_20210330_0013.py @@ -0,0 +1,17 @@ +# Generated by Django 3.0.7 on 2021-03-29 13:13 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('order', '0042_auto_20210310_1619'), + ] + + operations = [ + migrations.AlterUniqueTogether( + name='salesorderlineitem', + unique_together=set(), + ), + ] diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index c3b33eaace..cb78eabc6a 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -663,7 +663,6 @@ class SalesOrderLineItem(OrderLineItem): class Meta: unique_together = [ - ('order', 'part'), ] def fulfilled_quantity(self): @@ -732,6 +731,12 @@ class SalesOrderAllocation(models.Model): errors = {} + try: + if not self.item: + raise ValidationError({'item': _('Stock item has not been assigned')}) + except stock_models.StockItem.DoesNotExist: + raise ValidationError({'item': _('Stock item has not been assigned')}) + try: if not self.line.part == self.item.part: errors['item'] = _('Cannot allocate stock item to a line with a different part') diff --git a/InvenTree/order/templates/order/order_notes.html b/InvenTree/order/templates/order/order_notes.html index f392816120..cdd121c412 100644 --- a/InvenTree/order/templates/order/order_notes.html +++ b/InvenTree/order/templates/order/order_notes.html @@ -11,6 +11,9 @@ {% block heading %} {% trans "Order Notes" %} +{% if roles.purchase_order.change and not editing %} + +{% endif %} {% endblock %} {% block details %} @@ -21,21 +24,19 @@ {{ form }}
- + {{ form.media }} {% else %} -{% if roles.purchase_order.change %} - -{% endif %} -{% endif %} +
{{ order.notes | markdownify }}
+{% endif %} {% endblock %} diff --git a/InvenTree/order/templates/order/sales_order_detail.html b/InvenTree/order/templates/order/sales_order_detail.html index 27bbd542dd..7b4a4ed4f7 100644 --- a/InvenTree/order/templates/order/sales_order_detail.html +++ b/InvenTree/order/templates/order/sales_order_detail.html @@ -275,15 +275,20 @@ $("#so-lines-table").inventreeTable({ if (row.part) { var part = row.part_detail; + if (part.trackable) { + html += makeIconButton('fa-hashtag icon-green', 'button-add-by-sn', pk, '{% trans "Allocate serial numbers" %}'); + } + + html += makeIconButton('fa-sign-in-alt icon-green', 'button-add', pk, '{% trans "Allocate stock" %}'); + if (part.purchaseable) { - html += makeIconButton('fa-shopping-cart', 'button-buy', row.part, '{% trans "Buy parts" %}'); + html += makeIconButton('fa-shopping-cart', 'button-buy', row.part, '{% trans "Purchase stock" %}'); } if (part.assembly) { - html += makeIconButton('fa-tools', 'button-build', row.part, '{% trans "Build parts" %}'); + html += makeIconButton('fa-tools', 'button-build', row.part, '{% trans "Build stock" %}'); } - html += makeIconButton('fa-plus icon-green', 'button-add', pk, '{% trans "Allocate parts" %}'); } html += makeIconButton('fa-edit icon-blue', 'button-edit', pk, '{% trans "Edit line item" %}'); @@ -316,10 +321,28 @@ function setupCallbacks() { var pk = $(this).attr('pk'); launchModalForm(`/order/sales-order/line/${pk}/delete/`, { - reload: true, + success: reloadTable, }); }); + table.find(".button-add-by-sn").click(function() { + var pk = $(this).attr('pk'); + + inventreeGet(`/api/order/so-line/${pk}/`, {}, + { + success: function(response) { + launchModalForm('{% url "so-assign-serials" %}', { + success: reloadTable, + data: { + line: pk, + part: response.part, + } + }); + } + } + ); + }); + table.find(".button-add").click(function() { var pk = $(this).attr('pk'); diff --git a/InvenTree/order/templates/order/sales_order_notes.html b/InvenTree/order/templates/order/sales_order_notes.html index 947ea339db..0a2e105b2e 100644 --- a/InvenTree/order/templates/order/sales_order_notes.html +++ b/InvenTree/order/templates/order/sales_order_notes.html @@ -12,6 +12,9 @@ {% block heading %} {% trans "Sales Order Notes" %} +{% if roles.sales_order.change and not editing %} + +{% endif %} {% endblock %} {% block details %} @@ -23,13 +26,12 @@ {{ form }}
- + {{ form.media }} {% else %} -
{{ order.notes | markdownify }} diff --git a/InvenTree/order/templates/order/so_allocate_by_serial.html b/InvenTree/order/templates/order/so_allocate_by_serial.html new file mode 100644 index 0000000000..3e11d658c7 --- /dev/null +++ b/InvenTree/order/templates/order/so_allocate_by_serial.html @@ -0,0 +1,12 @@ +{% extends "modal_form.html" %} +{% load i18n %} + +{% block pre_form_content %} + +
+ {% include "hover_image.html" with image=part.image hover=true %}{{ part }} +
+ {% trans "Allocate stock items by serial number" %} +
+ +{% endblock %} \ No newline at end of file diff --git a/InvenTree/order/test_sales_order.py b/InvenTree/order/test_sales_order.py index c619aec5bc..0b37b96409 100644 --- a/InvenTree/order/test_sales_order.py +++ b/InvenTree/order/test_sales_order.py @@ -3,7 +3,6 @@ from django.test import TestCase from django.core.exceptions import ValidationError -from django.db.utils import IntegrityError from datetime import datetime, timedelta @@ -73,10 +72,10 @@ class SalesOrderTest(TestCase): self.assertFalse(self.order.is_fully_allocated()) def test_add_duplicate_line_item(self): - # Adding a duplicate line item to a SalesOrder must throw an error + # Adding a duplicate line item to a SalesOrder is accepted - with self.assertRaises(IntegrityError): - SalesOrderLineItem.objects.create(order=self.order, part=self.part) + for ii in range(1, 5): + SalesOrderLineItem.objects.create(order=self.order, part=self.part, quantity=ii) def allocate_stock(self, full=True): diff --git a/InvenTree/order/urls.py b/InvenTree/order/urls.py index 7707b73f37..97903d81c1 100644 --- a/InvenTree/order/urls.py +++ b/InvenTree/order/urls.py @@ -81,6 +81,7 @@ sales_order_urls = [ # URLs for sales order allocations url(r'^allocation/', include([ url(r'^new/', views.SalesOrderAllocationCreate.as_view(), name='so-allocation-create'), + url(r'^assign-serials/', views.SalesOrderAssignSerials.as_view(), name='so-assign-serials'), url(r'(?P\d+)/', include([ url(r'^edit/', views.SalesOrderAllocationEdit.as_view(), name='so-allocation-edit'), url(r'^delete/', views.SalesOrderAllocationDelete.as_view(), name='so-allocation-delete'), diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py index 2cd8e8a4cb..bdf0407603 100644 --- a/InvenTree/order/views.py +++ b/InvenTree/order/views.py @@ -7,9 +7,11 @@ from __future__ import unicode_literals from django.db import transaction from django.shortcuts import get_object_or_404 +from django.core.exceptions import ValidationError from django.urls import reverse from django.utils.translation import ugettext as _ from django.views.generic import DetailView, ListView, UpdateView +from django.views.generic.edit import FormMixin from django.forms import HiddenInput import logging @@ -30,6 +32,7 @@ from . import forms as order_forms from InvenTree.views import AjaxView, AjaxCreateView, AjaxUpdateView, AjaxDeleteView from InvenTree.helpers import DownloadFile, str2bool +from InvenTree.helpers import extract_serial_numbers from InvenTree.views import InvenTreeRoleMixin from InvenTree.status_codes import PurchaseOrderStatus, SalesOrderStatus, StockStatus @@ -1291,11 +1294,179 @@ class SOLineItemDelete(AjaxDeleteView): } +class SalesOrderAssignSerials(AjaxView, FormMixin): + """ + View for assigning stock items to a sales order, + by serial number lookup. + """ + + model = SalesOrderAllocation + role_required = 'sales_order.change' + ajax_template_name = 'order/so_allocate_by_serial.html' + ajax_form_title = _('Allocate Serial Numbers') + form_class = order_forms.AllocateSerialsToSalesOrderForm + + # Keep track of SalesOrderLineItem and Part references + line = None + part = None + + def get_initial(self): + """ + Initial values are passed as query params + """ + + initials = super().get_initial() + + try: + self.line = SalesOrderLineItem.objects.get(pk=self.request.GET.get('line', None)) + initials['line'] = self.line + except (ValueError, SalesOrderLineItem.DoesNotExist): + pass + + try: + self.part = Part.objects.get(pk=self.request.GET.get('part', None)) + initials['part'] = self.part + except (ValueError, Part.DoesNotExist): + pass + + return initials + + def post(self, request, *args, **kwargs): + + self.form = self.get_form() + + # Validate the form + self.form.is_valid() + self.validate() + + valid = self.form.is_valid() + + if valid: + self.allocate_items() + + data = { + 'form_valid': valid, + 'form_errors': self.form.errors.as_json(), + 'non_field_errors': self.form.non_field_errors().as_json(), + 'success': _("Allocated") + f" {len(self.stock_items)} " + _("items") + } + + return self.renderJsonResponse(request, self.form, data) + + def validate(self): + + data = self.form.cleaned_data + + # Extract hidden fields from posted data + self.line = data.get('line', None) + self.part = data.get('part', None) + + if self.line: + self.form.fields['line'].widget = HiddenInput() + else: + self.form.add_error('line', _('Select line item')) + + if self.part: + self.form.fields['part'].widget = HiddenInput() + else: + self.form.add_error('part', _('Select part')) + + if not self.form.is_valid(): + return + + # Form is otherwise valid - check serial numbers + serials = data.get('serials', '') + quantity = data.get('quantity', 1) + + # Save a list of serial_numbers + self.serial_numbers = None + self.stock_items = [] + + try: + self.serial_numbers = extract_serial_numbers(serials, quantity) + + for serial in self.serial_numbers: + try: + # Find matching stock item + stock_item = StockItem.objects.get( + part=self.part, + serial=serial + ) + except StockItem.DoesNotExist: + self.form.add_error( + 'serials', + _('No matching item for serial') + f" '{serial}'" + ) + continue + + # Now we have a valid stock item - but can it be added to the sales order? + + # If not in stock, cannot be added to the order + if not stock_item.in_stock: + self.form.add_error( + 'serials', + f"'{serial}' " + _("is not in stock") + ) + continue + + # Already allocated to an order + if stock_item.is_allocated(): + self.form.add_error( + 'serials', + f"'{serial}' " + _("already allocated to an order") + ) + continue + + # Add it to the list! + self.stock_items.append(stock_item) + + except ValidationError as e: + self.form.add_error('serials', e.messages) + + def allocate_items(self): + """ + Create stock item allocations for each selected serial number + """ + + for stock_item in self.stock_items: + SalesOrderAllocation.objects.create( + item=stock_item, + line=self.line, + quantity=1, + ) + + def get_form(self): + + form = super().get_form() + + if self.line: + form.fields['line'].widget = HiddenInput() + + if self.part: + form.fields['part'].widget = HiddenInput() + + return form + + def get_context_data(self): + return { + 'line': self.line, + 'part': self.part, + } + + def get(self, request, *args, **kwargs): + + return self.renderJsonResponse( + request, + self.get_form(), + context=self.get_context_data(), + ) + + class SalesOrderAllocationCreate(AjaxCreateView): """ View for creating a new SalesOrderAllocation """ model = SalesOrderAllocation - form_class = order_forms.EditSalesOrderAllocationForm + form_class = order_forms.CreateSalesOrderAllocationForm ajax_form_title = _('Allocate Stock to Order') def get_initial(self): diff --git a/InvenTree/part/templates/part/notes.html b/InvenTree/part/templates/part/notes.html index 7b3fe8ca0f..8397c32b88 100644 --- a/InvenTree/part/templates/part/notes.html +++ b/InvenTree/part/templates/part/notes.html @@ -10,35 +10,34 @@ {% block heading %} {% trans "Part Notes" %} +{% if roles.part.change and not editing %} + +{% endif %} {% endblock %} {% block details %} - - {% if editing %}
{% csrf_token %} {{ form }}
- + +
{{ form.media }} {% else %} -{% if roles.part.change %} - -{% endif %}
+ {% if part.notes %}
- {% if part.notes %} {{ part.notes | markdownify }} - {% endif %}
+ {% endif %}
{% endif %} diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html index 5a09480c40..f5459dac27 100644 --- a/InvenTree/stock/templates/stock/item_base.html +++ b/InvenTree/stock/templates/stock/item_base.html @@ -155,18 +155,24 @@ InvenTree | {% trans "Stock Item" %} - {{ item }}