diff --git a/InvenTree/locale/de/LC_MESSAGES/django.mo b/InvenTree/locale/de/LC_MESSAGES/django.mo index f7a6d40005..6cdb283c86 100644 Binary files a/InvenTree/locale/de/LC_MESSAGES/django.mo and b/InvenTree/locale/de/LC_MESSAGES/django.mo differ diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po index 6bf0d28301..8a0f157f70 100644 --- a/InvenTree/locale/de/LC_MESSAGES/django.po +++ b/InvenTree/locale/de/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-04 09:50+0000\n" +"POT-Creation-Date: 2020-06-09 06:17+0000\n" "PO-Revision-Date: 2020-05-03 11:32+0200\n" "Last-Translator: Christian Schlüter \n" "Language-Team: C \n" @@ -17,86 +17,120 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Lokalize 19.12.0\n" -#: InvenTree/api.py:61 +#: InvenTree/api.py:86 msgid "No action specified" msgstr "Keine Aktion angegeben" -#: InvenTree/api.py:75 +#: InvenTree/api.py:100 msgid "No matching action found" msgstr "Keine passende Aktion gefunden" -#: InvenTree/api.py:106 +#: InvenTree/api.py:131 msgid "No barcode data provided" msgstr "Keine Strichcodedaten bereitgestellt" -#: InvenTree/api.py:121 +#: InvenTree/api.py:146 msgid "Barcode successfully decoded" msgstr "Strichcode erfolgreich dekodiert" -#: InvenTree/api.py:124 +#: InvenTree/api.py:149 msgid "Barcode plugin returned incorrect response" msgstr "Ungültige Antwort vom Strichcode-Plugin" -#: InvenTree/api.py:134 +#: InvenTree/api.py:159 msgid "Unknown barcode format" msgstr "Unbekanntes Strichcode-Format" -#: InvenTree/helpers.py:258 order/models.py:150 order/models.py:224 +#: InvenTree/forms.py:101 build/forms.py:37 +msgid "Confirm" +msgstr "Bestätigen" + +#: InvenTree/forms.py:117 +#, fuzzy +#| msgid "Confim BOM item deletion" +msgid "Confirm item deletion" +msgstr "Löschung von BOM-Position bestätigen" + +#: InvenTree/forms.py:149 +#, fuzzy +#| msgid "Create new part" +msgid "Enter new password" +msgstr "Neues Teil anlegen" + +#: InvenTree/forms.py:156 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/helpers.py:328 order/models.py:187 order/models.py:261 msgid "Invalid quantity provided" msgstr "Keine gültige Menge" -#: InvenTree/helpers.py:261 +#: InvenTree/helpers.py:331 msgid "Empty serial number string" msgstr "Keine Seriennummer angegeben" -#: InvenTree/helpers.py:282 InvenTree/helpers.py:299 +#: InvenTree/helpers.py:352 InvenTree/helpers.py:369 #, python-brace-format msgid "Duplicate serial: {n}" msgstr "Doppelte Seriennummer: {n}" -#: InvenTree/helpers.py:286 InvenTree/helpers.py:289 InvenTree/helpers.py:292 -#: InvenTree/helpers.py:303 +#: InvenTree/helpers.py:356 InvenTree/helpers.py:359 InvenTree/helpers.py:362 +#: InvenTree/helpers.py:373 #, python-brace-format msgid "Invalid group: {g}" msgstr "Ungültige Gruppe: {g}" -#: InvenTree/helpers.py:309 +#: InvenTree/helpers.py:379 msgid "No serial numbers found" msgstr "Keine Seriennummern gefunden" -#: InvenTree/helpers.py:313 +#: InvenTree/helpers.py:383 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) " "übereinstimmen" -#: InvenTree/models.py:54 +#: InvenTree/models.py:60 msgid "Select file to attach" msgstr "Datei zum Anhängen auswählen" -#: InvenTree/models.py:56 +#: InvenTree/models.py:62 msgid "File comment" msgstr "Datei-Kommentar" -#: InvenTree/settings.py:295 +#: InvenTree/models.py:68 templates/js/stock.html:662 +msgid "User" +msgstr "Benutzer" + +#: InvenTree/models.py:106 part/templates/part/params.html:20 +msgid "Name" +msgstr "Name" + +#: InvenTree/models.py:112 +#, fuzzy +#| msgid "Description of the company" +msgid "Description (optional)" +msgstr "Firmenbeschreibung" + +#: InvenTree/settings.py:330 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:296 +#: InvenTree/settings.py:331 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:297 +#: InvenTree/settings.py:332 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:298 +#: InvenTree/settings.py:333 msgid "Polish" msgstr "Polnisch" #: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 -#: InvenTree/status_codes.py:230 +#: InvenTree/status_codes.py:235 msgid "Pending" msgstr "Ausstehend" @@ -104,61 +138,61 @@ msgstr "Ausstehend" msgid "Placed" msgstr "Platziert" -#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:233 +#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:238 msgid "Complete" msgstr "Fertig" #: InvenTree/status_codes.py:97 InvenTree/status_codes.py:137 -#: InvenTree/status_codes.py:232 +#: InvenTree/status_codes.py:237 msgid "Cancelled" msgstr "Storniert" #: InvenTree/status_codes.py:98 InvenTree/status_codes.py:138 -#: InvenTree/status_codes.py:174 +#: InvenTree/status_codes.py:179 msgid "Lost" msgstr "Verloren" #: InvenTree/status_codes.py:99 InvenTree/status_codes.py:139 -#: InvenTree/status_codes.py:176 +#: InvenTree/status_codes.py:181 msgid "Returned" msgstr "Zurückgegeben" -#: InvenTree/status_codes.py:136 InvenTree/status_codes.py:177 +#: InvenTree/status_codes.py:136 InvenTree/status_codes.py:182 #: order/templates/order/sales_order_base.html:98 msgid "Shipped" msgstr "Versendet" -#: InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:175 msgid "OK" msgstr "OK" -#: InvenTree/status_codes.py:171 +#: InvenTree/status_codes.py:176 msgid "Attention needed" msgstr "erfordert Eingriff" -#: InvenTree/status_codes.py:172 +#: InvenTree/status_codes.py:177 msgid "Damaged" msgstr "Beschädigt" -#: InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:178 msgid "Destroyed" msgstr "Zerstört" -#: InvenTree/status_codes.py:175 +#: InvenTree/status_codes.py:180 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:178 +#: InvenTree/status_codes.py:183 msgid "Used for Build" msgstr "Verwendet für Bau" -#: InvenTree/status_codes.py:179 +#: InvenTree/status_codes.py:184 msgid "Installed in Stock Item" msgstr "In Lagerobjekt installiert" -#: InvenTree/status_codes.py:231 build/templates/build/allocate.html:349 +#: InvenTree/status_codes.py:236 build/templates/build/allocate.html:349 #: order/templates/order/sales_order_detail.html:220 -#: part/templates/part/tabs.html:21 templates/js/build.html:120 +#: part/templates/part/tabs.html:23 templates/js/build.html:120 msgid "Allocated" msgstr "Zugeordnet" @@ -187,69 +221,83 @@ msgstr "Überschuss darf 100% nicht überschreiten" msgid "Overage must be an integer value or a percentage" msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" -#: InvenTree/views.py:547 +#: InvenTree/views.py:563 msgid "Database Statistics" msgstr "Datenbankstatistiken" -#: build/forms.py:37 -msgid "Confirm" -msgstr "Bestätigen" +#: build/forms.py:58 +#, fuzzy +#| msgid "Location Details" +msgid "Location of completed parts" +msgstr "Standort-Details" -#: build/forms.py:54 stock/forms.py:34 +#: build/forms.py:62 +#, fuzzy +#| msgid "Serial Number" +msgid "Serial numbers" +msgstr "Seriennummer" + +#: build/forms.py:64 stock/forms.py:93 msgid "Enter unique serial numbers (or leave blank)" msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)" -#: build/forms.py:56 +#: build/forms.py:67 msgid "Confirm build completion" msgstr "Bau-Fertigstellung bestätigen" -#: build/models.py:57 build/templates/build/build_base.html:65 +#: build/models.py:67 +#, fuzzy +#| msgid "Overage must be an integer value or a percentage" +msgid "Build quantity must be integer value for trackable parts" +msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" + +#: build/models.py:73 build/templates/build/build_base.html:65 msgid "Build Title" msgstr "Bau-Titel" -#: build/models.py:60 +#: build/models.py:76 msgid "Brief description of the build" msgstr "Kurze Beschreibung des Baus" -#: build/models.py:68 build/templates/build/build_base.html:86 +#: build/models.py:84 build/templates/build/build_base.html:86 msgid "Parent Build" msgstr "Eltern-Bau" -#: build/models.py:69 +#: build/models.py:85 msgid "Parent build to which this build is allocated" msgstr "Eltern-Bau, dem dieser Bau zugewiesen ist" -#: build/models.py:74 build/templates/build/allocate.html:320 +#: build/models.py:90 build/templates/build/allocate.html:320 #: build/templates/build/auto_allocate.html:18 #: build/templates/build/build_base.html:70 -#: build/templates/build/detail.html:22 order/models.py:464 +#: build/templates/build/detail.html:22 order/models.py:501 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:145 -#: order/templates/order/receive_parts.html:19 +#: order/templates/order/receive_parts.html:19 part/models.py:240 #: part/templates/part/part_app_base.html:7 #: part/templates/part/set_category.html:13 templates/js/bom.html:135 #: templates/js/build.html:41 templates/js/company.html:109 -#: templates/js/part.html:111 templates/js/stock.html:206 +#: templates/js/part.html:120 templates/js/stock.html:422 msgid "Part" msgstr "Teil" -#: build/models.py:83 +#: build/models.py:99 msgid "Select part to build" msgstr "Teil für den Bau wählen" -#: build/models.py:88 +#: build/models.py:104 msgid "Sales Order Reference" msgstr "Bestellungsreferenz" -#: build/models.py:92 +#: build/models.py:108 msgid "SalesOrder to which this build is allocated" msgstr "Bestellung, die diesem Bau zugwiesen ist" -#: build/models.py:97 +#: build/models.py:113 msgid "Source Location" msgstr "Quell-Standort" -#: build/models.py:101 +#: build/models.py:117 msgid "" "Select location to take stock from for this build (leave blank to take from " "any stock location)" @@ -257,92 +305,93 @@ msgstr "" "Lager-Entnahmestandort für diesen Bau wählen (oder leer lassen für einen " "beliebigen Lager-Standort)" -#: build/models.py:105 +#: build/models.py:121 msgid "Build Quantity" msgstr "Bau-Anzahl" -#: build/models.py:108 +#: build/models.py:124 msgid "Number of parts to build" msgstr "Anzahl der zu bauenden Teile" -#: build/models.py:112 part/templates/part/part_base.html:138 +#: build/models.py:128 part/templates/part/part_base.html:141 msgid "Build Status" msgstr "Bau-Status" -#: build/models.py:116 +#: build/models.py:132 msgid "Build status code" msgstr "Bau-Statuscode" -#: build/models.py:120 stock/models.py:377 +#: build/models.py:136 stock/models.py:374 msgid "Batch Code" msgstr "Losnummer" -#: build/models.py:124 +#: build/models.py:140 msgid "Batch code for this build output" msgstr "Chargennummer für diese Bau-Ausgabe" -#: build/models.py:139 build/templates/build/detail.html:55 +#: build/models.py:155 build/templates/build/detail.html:55 #: company/templates/company/supplier_part_base.html:60 #: company/templates/company/supplier_part_detail.html:24 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85 -#: stock/models.py:371 stock/templates/stock/item_base.html:189 +#: part/templates/part/detail.html:74 part/templates/part/part_base.html:88 +#: stock/models.py:368 stock/templates/stock/item_base.html:221 msgid "External Link" msgstr "Externer Link" -#: build/models.py:140 stock/models.py:373 +#: build/models.py:156 stock/models.py:370 msgid "Link to external URL" msgstr "Link zu einer externen URL" -#: build/models.py:144 build/templates/build/tabs.html:14 company/models.py:302 -#: company/templates/company/tabs.html:26 order/templates/order/po_tabs.html:15 +#: build/models.py:160 build/templates/build/tabs.html:14 company/models.py:302 +#: company/templates/company/tabs.html:33 order/templates/order/po_tabs.html:15 #: order/templates/order/purchase_order_detail.html:200 -#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 -#: stock/models.py:439 stock/templates/stock/tabs.html:17 -#: templates/js/bom.html:229 templates/js/stock.html:290 +#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:73 +#: stock/models.py:436 stock/models.py:1265 stock/templates/stock/tabs.html:26 +#: templates/js/bom.html:229 templates/js/stock.html:113 +#: templates/js/stock.html:506 msgid "Notes" msgstr "Notizen" -#: build/models.py:145 +#: build/models.py:161 msgid "Extra build notes" msgstr "Notizen für den Bau" -#: build/models.py:451 +#: build/models.py:467 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" msgstr "Ausgewähltes Lagerobjekt nicht in BOM für Teil '{p}' gefunden" -#: build/models.py:454 +#: build/models.py:470 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" "zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten" -#: build/models.py:460 order/models.py:548 +#: build/models.py:476 order/models.py:585 msgid "StockItem is over-allocated" msgstr "Zu viele Lagerobjekte zugewiesen" -#: build/models.py:463 order/models.py:551 +#: build/models.py:479 order/models.py:588 msgid "Allocation quantity must be greater than zero" msgstr "Anzahl muss größer null sein" -#: build/models.py:466 +#: build/models.py:482 msgid "Quantity must be 1 for serialized stock" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: build/models.py:496 +#: build/models.py:512 msgid "Build to allocate parts" msgstr "Bau starten um Teile zuzuweisen" -#: build/models.py:503 +#: build/models.py:519 msgid "Stock Item to allocate to build" msgstr "Lagerobjekt dem Bau zuweisen" -#: build/models.py:516 +#: build/models.py:532 msgid "Stock quantity to allocate to build" msgstr "Lagerobjekt-Anzahl dem Bau zuweisen" #: build/templates/build/allocate.html:17 -#: company/templates/company/detail_part.html:18 order/views.py:763 +#: company/templates/company/detail_part.html:18 order/views.py:779 msgid "Order Parts" msgstr "Teile bestellen" @@ -364,8 +413,8 @@ msgstr "Neues Lagerobjekt" #: build/templates/build/allocate.html:161 #: order/templates/order/sales_order_detail.html:68 -#: order/templates/order/sales_order_detail.html:150 stock/models.py:365 -#: stock/templates/stock/item_base.html:148 +#: order/templates/order/sales_order_detail.html:150 stock/models.py:362 +#: stock/templates/stock/item_base.html:180 msgid "Serial Number" msgstr "Seriennummer" @@ -380,18 +429,18 @@ msgstr "Seriennummer" #: order/templates/order/sales_order_detail.html:152 #: part/templates/part/allocation.html:16 #: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:20 #: stock/templates/stock/item_base.html:26 -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:32 +#: stock/templates/stock/item_base.html:186 #: stock/templates/stock/stock_adjust.html:18 templates/js/bom.html:172 -#: templates/js/build.html:52 templates/js/stock.html:437 +#: templates/js/build.html:52 templates/js/stock.html:653 msgid "Quantity" msgstr "Anzahl" #: build/templates/build/allocate.html:177 #: build/templates/build/auto_allocate.html:20 -#: stock/templates/stock/item_base.html:134 -#: stock/templates/stock/stock_adjust.html:17 templates/js/stock.html:277 +#: stock/templates/stock/item_base.html:162 +#: stock/templates/stock/stock_adjust.html:17 templates/js/stock.html:493 msgid "Location" msgstr "Standort" @@ -413,11 +462,11 @@ msgstr "Keine BOM-Einträge gefunden" #: company/templates/company/supplier_part_base.html:53 #: company/templates/company/supplier_part_detail.html:27 #: order/templates/order/purchase_order_detail.html:157 -#: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 +#: part/templates/part/detail.html:45 part/templates/part/set_category.html:14 #: templates/js/bom.html:157 templates/js/company.html:60 #: templates/js/order.html:157 templates/js/order.html:230 -#: templates/js/part.html:167 templates/js/stock.html:227 -#: templates/js/stock.html:418 +#: templates/js/part.html:176 templates/js/part.html:355 +#: templates/js/stock.html:443 templates/js/stock.html:634 msgid "Description" msgstr "Beschreibung" @@ -427,7 +476,8 @@ msgstr "Beschreibung" msgid "Reference" msgstr "Referenz" -#: build/templates/build/allocate.html:338 +#: build/templates/build/allocate.html:338 part/models.py:1260 +#: templates/js/part.html:359 templates/js/table_filters.html:63 msgid "Required" msgstr "benötigt" @@ -471,7 +521,7 @@ msgstr "Keine Lagerobjekt gefunden, die diesem Bau zugewiesen werden können" #: build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:34 #: build/templates/build/complete.html:6 -#: stock/templates/stock/item_base.html:168 templates/js/build.html:33 +#: stock/templates/stock/item_base.html:200 templates/js/build.html:33 #: templates/navbar.html:12 msgid "Build" msgstr "Bau" @@ -491,19 +541,19 @@ msgstr "Bau-Status" #: build/templates/build/build_base.html:80 #: build/templates/build/detail.html:42 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:221 templates/js/build.html:57 +#: stock/templates/stock/item_base.html:253 templates/js/build.html:57 #: templates/js/order.html:162 templates/js/order.html:235 -#: templates/js/stock.html:264 +#: templates/js/stock.html:480 msgid "Status" msgstr "Status" -#: build/templates/build/build_base.html:93 order/models.py:462 +#: build/templates/build/build_base.html:93 order/models.py:499 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_notes.html:10 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:27 -#: stock/templates/stock/item_base.html:122 templates/js/order.html:209 +#: stock/templates/stock/item_base.html:150 templates/js/order.html:209 msgid "Sales Order" msgstr "Bestellung" @@ -572,7 +622,7 @@ msgid "Stock can be taken from any available location." msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden." #: build/templates/build/detail.html:48 -#: stock/templates/stock/item_base.html:161 templates/js/stock.html:272 +#: stock/templates/stock/item_base.html:193 templates/js/stock.html:488 msgid "Batch" msgstr "Los" @@ -600,7 +650,7 @@ msgstr "Fertig" #: build/templates/build/index.html:6 build/templates/build/index.html:14 #: order/templates/order/so_builds.html:11 order/templates/order/so_tabs.html:9 -#: part/templates/part/tabs.html:28 +#: part/templates/part/tabs.html:30 msgid "Build Orders" msgstr "Bauaufträge" @@ -615,14 +665,14 @@ msgstr "Bau-Bemerkungen" #: build/templates/build/notes.html:20 company/templates/company/notes.html:17 #: order/templates/order/order_notes.html:21 #: order/templates/order/sales_order_notes.html:26 -#: part/templates/part/notes.html:20 stock/templates/stock/item_notes.html:21 +#: part/templates/part/notes.html:20 stock/templates/stock/item_notes.html:22 msgid "Save" msgstr "Speichern" #: build/templates/build/notes.html:33 company/templates/company/notes.html:30 #: order/templates/order/order_notes.html:32 #: order/templates/order/sales_order_notes.html:37 -#: part/templates/part/notes.html:32 stock/templates/stock/item_notes.html:32 +#: part/templates/part/notes.html:32 stock/templates/stock/item_notes.html:33 msgid "Edit notes" msgstr "Bermerkungen bearbeiten" @@ -668,7 +718,7 @@ msgstr "Lagerbestandszuordnung bestätigen" msgid "Check the confirmation box at the bottom of the list" msgstr "Bestätigunsbox am Ende der Liste bestätigen" -#: build/views.py:148 build/views.py:446 +#: build/views.py:148 build/views.py:456 msgid "Unallocate Stock" msgstr "Zuweisung aufheben" @@ -676,7 +726,7 @@ msgstr "Zuweisung aufheben" msgid "Confirm unallocation of build stock" msgstr "Zuweisungsaufhebung bestätigen" -#: build/views.py:162 +#: build/views.py:162 stock/views.py:286 msgid "Check the confirmation box" msgstr "Bestätigungsbox bestätigen" @@ -684,56 +734,66 @@ msgstr "Bestätigungsbox bestätigen" msgid "Complete Build" msgstr "Bau fertigstellen" -#: build/views.py:258 +#: build/views.py:201 stock/views.py:1118 stock/views.py:1232 +msgid "Next available serial number is" +msgstr "" + +#: build/views.py:203 +#, fuzzy +#| msgid "No serial numbers found" +msgid "Next available serial numbers are" +msgstr "Keine Seriennummern gefunden" + +#: build/views.py:268 msgid "Confirm completion of build" msgstr "Baufertigstellung bestätigen" -#: build/views.py:265 +#: build/views.py:275 msgid "Invalid location selected" msgstr "Ungültige Ortsauswahl" -#: build/views.py:290 stock/views.py:917 +#: build/views.py:300 stock/views.py:1268 #, python-brace-format msgid "The following serial numbers already exist: ({sn})" msgstr "Die folgende Seriennummer existiert bereits: ({sn})" -#: build/views.py:311 +#: build/views.py:321 msgid "Build marked as COMPLETE" msgstr "Bau als FERTIG markiert" -#: build/views.py:387 +#: build/views.py:397 msgid "Start new Build" msgstr "Neuen Bau beginnen" -#: build/views.py:412 +#: build/views.py:422 msgid "Created new build" msgstr "Neuen Bau angelegt" -#: build/views.py:422 +#: build/views.py:432 msgid "Edit Build Details" msgstr "Baudetails bearbeiten" -#: build/views.py:427 +#: build/views.py:437 msgid "Edited build" msgstr "Bau bearbeitet" -#: build/views.py:436 +#: build/views.py:446 msgid "Delete Build" msgstr "Bau entfernt" -#: build/views.py:451 +#: build/views.py:461 msgid "Removed parts from build allocation" msgstr "Teile von Bauzuordnung entfernt" -#: build/views.py:461 +#: build/views.py:471 msgid "Allocate new Part" msgstr "Neues Teil zuordnen" -#: build/views.py:614 +#: build/views.py:624 msgid "Edit Stock Allocation" msgstr "Teilzuordnung bearbeiten" -#: build/views.py:618 +#: build/views.py:628 msgid "Updated Build Item" msgstr "Bauobjekt aktualisiert" @@ -867,6 +927,13 @@ msgstr "Mindestpreis" msgid "Part packaging" msgstr "Teile-Packaging" +#: company/templates/company/assigned_stock.html:9 +#: company/templates/company/tabs.html:25 +#, fuzzy +#| msgid "Assigned" +msgid "Assigned Stock" +msgstr "Zugewiesen" + #: company/templates/company/company_base.html:7 #: company/templates/company/company_base.html:22 templates/js/company.html:38 msgid "Company" @@ -906,17 +973,18 @@ msgstr "Hersteller" #: company/templates/company/detail.html:21 #: company/templates/company/supplier_part_base.html:66 -#: company/templates/company/supplier_part_detail.html:21 order/models.py:111 +#: company/templates/company/supplier_part_detail.html:21 order/models.py:148 #: order/templates/order/order_base.html:74 #: order/templates/order/order_wizard/select_pos.html:30 -#: stock/templates/stock/item_base.html:196 templates/js/company.html:52 +#: stock/templates/stock/item_base.html:228 templates/js/company.html:52 #: templates/js/company.html:134 templates/js/order.html:144 msgid "Supplier" msgstr "Zulieferer" -#: company/templates/company/detail.html:26 order/models.py:277 -#: order/templates/order/sales_order_base.html:73 templates/js/company.html:44 -#: templates/js/order.html:217 +#: company/templates/company/detail.html:26 order/models.py:314 +#: order/templates/order/sales_order_base.html:73 stock/models.py:357 +#: stock/models.py:358 stock/templates/stock/item_base.html:137 +#: templates/js/company.html:44 templates/js/order.html:217 msgid "Customer" msgstr "Kunde" @@ -971,7 +1039,7 @@ msgid "Supplier Stock" msgstr "Zuliefererbestand" #: company/templates/company/detail_stock.html:34 -#: company/templates/company/supplier_part_stock.html:38 +#: company/templates/company/supplier_part_stock.html:33 #: part/templates/part/stock.html:54 templates/stock_table.html:5 msgid "Export" msgstr "Exportieren" @@ -994,7 +1062,7 @@ msgstr "" #: company/templates/company/tabs.html:17 #: order/templates/order/purchase_orders.html:7 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/orders.html:9 part/templates/part/tabs.html:43 +#: part/templates/part/orders.html:9 part/templates/part/tabs.html:45 #: templates/navbar.html:18 msgid "Purchase Orders" msgstr "Bestellungen" @@ -1013,7 +1081,7 @@ msgstr "Neue Bestellung" #: company/templates/company/tabs.html:22 #: order/templates/order/sales_orders.html:7 #: order/templates/order/sales_orders.html:12 -#: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:48 +#: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:50 #: templates/navbar.html:25 msgid "Sales Orders" msgstr "Bestellungen" @@ -1029,8 +1097,8 @@ msgid "New Sales Order" msgstr "Neuer Auftrag" #: company/templates/company/supplier_part_base.html:6 -#: company/templates/company/supplier_part_base.html:19 stock/models.py:344 -#: stock/templates/stock/item_base.html:201 templates/js/company.html:150 +#: company/templates/company/supplier_part_base.html:19 stock/models.py:331 +#: stock/templates/stock/item_base.html:233 templates/js/company.html:150 msgid "Supplier Part" msgstr "Zulieferer-Teil" @@ -1110,14 +1178,14 @@ msgstr "Keine Preisstaffelung für dieses Teil" msgid "Supplier Part Stock" msgstr "Zuliefererbestand" -#: company/templates/company/supplier_part_stock.html:61 +#: company/templates/company/supplier_part_stock.html:56 #: order/templates/order/purchase_order_detail.html:38 #: order/templates/order/purchase_order_detail.html:118 #: part/templates/part/stock.html:91 msgid "New Location" msgstr "Neuer Standort" -#: company/templates/company/supplier_part_stock.html:62 +#: company/templates/company/supplier_part_stock.html:57 #: part/templates/part/stock.html:92 msgid "Create New Location" msgstr "Neuen Standort anlegen" @@ -1127,9 +1195,9 @@ msgid "Pricing" msgstr "Bepreisung" #: company/templates/company/supplier_part_tabs.html:8 -#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 -#: stock/templates/stock/location.html:12 templates/js/part.html:194 -#: templates/js/stock.html:235 templates/navbar.html:11 +#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18 +#: stock/templates/stock/location.html:12 templates/js/part.html:203 +#: templates/js/stock.html:451 templates/navbar.html:11 msgid "Stock" msgstr "Lagerbestand" @@ -1138,13 +1206,13 @@ msgid "Orders" msgstr "Bestellungen" #: company/templates/company/tabs.html:9 -#: order/templates/order/receive_parts.html:14 +#: order/templates/order/receive_parts.html:14 part/models.py:241 #: part/templates/part/category.html:83 templates/navbar.html:10 #: templates/stats.html:8 templates/stats.html:17 msgid "Parts" msgstr "Teile" -#: company/views.py:50 part/templates/part/tabs.html:37 +#: company/views.py:50 part/templates/part/tabs.html:39 #: templates/navbar.html:16 msgid "Suppliers" msgstr "Zulieferer" @@ -1250,99 +1318,112 @@ msgstr "Bestellung versenden" msgid "Receive parts to this location" msgstr "Teile in diesen Ort empfangen" -#: order/models.py:71 +#: order/forms.py:99 +#, fuzzy +#| msgid "Select a purchase order for" +msgid "Enter purchase order number" +msgstr "Bestellung auswählen für" + +#: order/forms.py:126 +#, fuzzy +#| msgid "Cancel sales order" +msgid "Enter sales order number" +msgstr "Auftrag stornieren" + +#: order/models.py:108 msgid "Order reference" msgstr "Bestell-Referenz" -#: order/models.py:73 +#: order/models.py:110 msgid "Order description" msgstr "Bestellungs-Beschreibung" -#: order/models.py:75 +#: order/models.py:112 msgid "Link to external page" msgstr "Link auf externe Seite" -#: order/models.py:85 +#: order/models.py:122 msgid "Order notes" msgstr "Bestell-Notizen" -#: order/models.py:114 +#: order/models.py:151 msgid "Supplier order reference code" msgstr "Bestellreferenz" -#: order/models.py:148 order/models.py:222 part/views.py:1113 -#: stock/models.py:607 +#: order/models.py:185 order/models.py:259 part/views.py:1167 +#: stock/models.py:243 stock/models.py:665 stock/views.py:1243 msgid "Quantity must be greater than zero" msgstr "Anzahl muss größer Null sein" -#: order/models.py:153 +#: order/models.py:190 msgid "Part supplier must match PO supplier" msgstr "Teile-Zulieferer muss dem Zulieferer des Kaufvertrags entsprechen" -#: order/models.py:217 +#: order/models.py:254 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden" -#: order/models.py:283 +#: order/models.py:320 msgid "Customer order reference code" msgstr "Bestellreferenz" -#: order/models.py:322 +#: order/models.py:359 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "Bestellung kann nicht versendet werden weil sie nicht anhängig ist" -#: order/models.py:399 +#: order/models.py:436 msgid "Item quantity" msgstr "Anzahl" -#: order/models.py:401 +#: order/models.py:438 msgid "Line item reference" msgstr "Position - Referenz" -#: order/models.py:403 +#: order/models.py:440 msgid "Line item notes" msgstr "Position - Notizen" -#: order/models.py:429 order/templates/order/order_base.html:9 +#: order/models.py:466 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:23 -#: stock/templates/stock/item_base.html:175 templates/js/order.html:136 +#: stock/templates/stock/item_base.html:207 templates/js/order.html:136 msgid "Purchase Order" msgstr "Kaufvertrag" -#: order/models.py:442 +#: order/models.py:479 msgid "Supplier part" msgstr "Zulieferer-Teil" -#: order/models.py:445 +#: order/models.py:482 msgid "Number of items received" msgstr "Empfangene Objekt-Anzahl" -#: order/models.py:539 +#: order/models.py:576 msgid "Cannot allocate stock item to a line with a different part" msgstr "Kann Lagerobjekt keiner Zeile mit einem anderen Teil hinzufügen" -#: order/models.py:541 +#: order/models.py:578 msgid "Cannot allocate stock to a line without a part" msgstr "Kann Lagerobjekt keiner Zeile ohne Teil hinzufügen" -#: order/models.py:544 +#: order/models.py:581 msgid "Allocation quantity cannot exceed stock quantity" msgstr "zugewiesene Anzahl darf nicht die verfügbare Anzahl überschreiten" -#: order/models.py:554 +#: order/models.py:591 msgid "Quantity must be 1 for serialized stock item" msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein" -#: order/models.py:571 +#: order/models.py:608 msgid "Select stock item to allocate" msgstr "Lagerobjekt für Zuordnung auswählen" -#: order/models.py:574 +#: order/models.py:611 msgid "Enter stock allocation quantity" msgstr "Zuordnungsanzahl eingeben" #: order/templates/order/delete_attachment.html:5 -#: part/templates/part/attachment_delete.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?" @@ -1434,44 +1515,14 @@ msgstr "Bestellung auswählen für" msgid "Purchase Order Attachments" msgstr "Bestellanhänge" -#: order/templates/order/po_attachments.html:17 -#: order/templates/order/so_attachments.html:17 -#: part/templates/part/attachments.html:14 -msgid "Add Attachment" -msgstr "Anhang hinzufügen" - -#: order/templates/order/po_attachments.html:24 -#: order/templates/order/so_attachments.html:24 -#: part/templates/part/attachments.html:22 -msgid "File" -msgstr "Datei" - -#: order/templates/order/po_attachments.html:25 -#: order/templates/order/so_attachments.html:25 -#: part/templates/part/attachments.html:23 -msgid "Comment" -msgstr "Kommentar" - -#: order/templates/order/po_attachments.html:36 -#: order/templates/order/so_attachments.html:36 -#: part/templates/part/attachments.html:34 part/views.py:118 -msgid "Edit attachment" -msgstr "Anhang bearbeiten" - -#: order/templates/order/po_attachments.html:39 -#: order/templates/order/so_attachments.html:39 -#: part/templates/part/attachments.html:37 -msgid "Delete attachment" -msgstr "Anhang löschen" - #: order/templates/order/po_tabs.html:8 order/templates/order/so_tabs.html:16 -#: part/templates/part/tabs.html:60 +#: part/templates/part/tabs.html:70 stock/templates/stock/tabs.html:32 msgid "Attachments" msgstr "Anhänge" #: order/templates/order/purchase_order_detail.html:16 -#: order/templates/order/sales_order_detail.html:17 order/views.py:1071 -#: order/views.py:1185 +#: order/templates/order/sales_order_detail.html:17 order/views.py:1087 +#: order/views.py:1201 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -1520,7 +1571,7 @@ msgid "Select parts to receive against this order" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:128 templates/js/part.html:210 +#: part/templates/part/part_base.html:131 templates/js/part.html:219 msgid "On Order" msgstr "bestellt" @@ -1552,6 +1603,7 @@ msgstr "Kundenreferenz" #: order/templates/order/sales_order_cancel.html:8 #: order/templates/order/sales_order_ship.html:9 +#: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" msgstr "Warnung" @@ -1617,143 +1669,143 @@ msgstr "Bestellungspositionen" msgid "Add Purchase Order Attachment" msgstr "Bestellanhang hinzufügen" -#: order/views.py:98 order/views.py:138 part/views.py:79 +#: order/views.py:102 order/views.py:149 part/views.py:85 stock/views.py:166 msgid "Added attachment" msgstr "Anhang hinzugefügt" -#: order/views.py:134 +#: order/views.py:141 msgid "Add Sales Order Attachment" msgstr "Auftragsanhang hinzufügen" -#: order/views.py:162 order/views.py:183 +#: order/views.py:176 order/views.py:197 msgid "Edit Attachment" msgstr "Anhang bearbeiten" -#: order/views.py:166 order/views.py:187 +#: order/views.py:180 order/views.py:201 msgid "Attachment updated" msgstr "Anhang aktualisiert" -#: order/views.py:202 order/views.py:216 +#: order/views.py:216 order/views.py:230 msgid "Delete Attachment" msgstr "Anhang löschen" -#: order/views.py:208 order/views.py:222 +#: order/views.py:222 order/views.py:236 stock/views.py:222 msgid "Deleted attachment" msgstr "Anhang gelöscht" -#: order/views.py:273 +#: order/views.py:287 msgid "Create Purchase Order" msgstr "Bestellung anlegen" -#: order/views.py:303 +#: order/views.py:318 msgid "Create Sales Order" msgstr "Auftrag anlegen" -#: order/views.py:332 +#: order/views.py:348 msgid "Edit Purchase Order" msgstr "Bestellung bearbeiten" -#: order/views.py:352 +#: order/views.py:368 msgid "Edit Sales Order" msgstr "Auftrag bearbeiten" -#: order/views.py:368 +#: order/views.py:384 msgid "Cancel Order" msgstr "Bestellung stornieren" -#: order/views.py:383 order/views.py:415 +#: order/views.py:399 order/views.py:431 msgid "Confirm order cancellation" msgstr "Bestellstornierung bestätigen" -#: order/views.py:401 +#: order/views.py:417 msgid "Cancel sales order" msgstr "Auftrag stornieren" -#: order/views.py:421 +#: order/views.py:437 msgid "Could not cancel order" msgstr "Stornierung fehlgeschlagen" -#: order/views.py:435 +#: order/views.py:451 msgid "Issue Order" msgstr "Bestellung aufgeben" -#: order/views.py:450 +#: order/views.py:466 msgid "Confirm order placement" msgstr "Bestellungstätigung bestätigen" -#: order/views.py:471 +#: order/views.py:487 msgid "Complete Order" msgstr "Auftrag fertigstellen" -#: order/views.py:506 +#: order/views.py:522 msgid "Ship Order" msgstr "Versenden" -#: order/views.py:522 +#: order/views.py:538 msgid "Confirm order shipment" msgstr "Versand bestätigen" -#: order/views.py:528 +#: order/views.py:544 msgid "Could not ship order" msgstr "Versand fehlgeschlagen" -#: order/views.py:579 +#: order/views.py:595 msgid "Receive Parts" msgstr "Teile empfangen" -#: order/views.py:646 +#: order/views.py:662 msgid "Items received" msgstr "Anzahl empfangener Positionen" -#: order/views.py:660 +#: order/views.py:676 msgid "No destination set" msgstr "Kein Ziel gesetzt" -#: order/views.py:705 +#: order/views.py:721 msgid "Error converting quantity to number" msgstr "Fehler beim Konvertieren zu Zahl" -#: order/views.py:711 +#: order/views.py:727 msgid "Receive quantity less than zero" msgstr "Anzahl kleiner null empfangen" -#: order/views.py:717 +#: order/views.py:733 msgid "No lines specified" msgstr "Keine Zeilen angegeben" -#: order/views.py:1091 +#: order/views.py:1107 msgid "Invalid Purchase Order" msgstr "Ungültige Bestellung" -#: order/views.py:1099 +#: order/views.py:1115 msgid "Supplier must match for Part and Order" msgstr "Zulieferer muss zum Teil und zur Bestellung passen" -#: order/views.py:1104 +#: order/views.py:1120 msgid "Invalid SupplierPart selection" msgstr "Ungültige Wahl des Zulieferer-Teils" -#: order/views.py:1236 order/views.py:1254 +#: order/views.py:1252 order/views.py:1270 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: order/views.py:1270 order/views.py:1282 +#: order/views.py:1286 order/views.py:1298 msgid "Delete Line Item" msgstr "Position löschen" -#: order/views.py:1275 order/views.py:1287 +#: order/views.py:1291 order/views.py:1303 msgid "Deleted line item" msgstr "Position gelöscht" -#: order/views.py:1296 +#: order/views.py:1312 msgid "Allocate Stock to Order" msgstr "Lagerbestand dem Auftrag zuweisen" -#: order/views.py:1365 +#: order/views.py:1381 msgid "Edit Allocation Quantity" msgstr "Zuordnung bearbeiten" -#: order/views.py:1380 +#: order/views.py:1396 msgid "Remove allocation" msgstr "Zuordnung entfernen" @@ -1770,219 +1822,279 @@ msgstr "Fehler beim Lesen der Stückliste (ungültige Daten)" msgid "Error reading BOM file (incorrect row size)" msgstr "Fehler beim Lesen der Stückliste (ungültige Zeilengröße)" -#: part/forms.py:37 stock/forms.py:91 +#: part/forms.py:55 stock/forms.py:200 msgid "File Format" msgstr "Dateiformat" -#: part/forms.py:37 stock/forms.py:91 +#: part/forms.py:55 stock/forms.py:200 msgid "Select output file format" msgstr "Ausgabe-Dateiformat auswählen" -#: part/forms.py:39 +#: part/forms.py:57 msgid "Cascading" msgstr "Kaskadierend" -#: part/forms.py:39 +#: part/forms.py:57 msgid "Download cascading / multi-level BOM" msgstr "Kaskadierende Stückliste herunterladen" -#: part/forms.py:58 +#: part/forms.py:76 msgid "Confirm that the BOM is correct" msgstr "Bestätigen, dass die Stückliste korrekt ist" -#: part/forms.py:70 +#: part/forms.py:88 msgid "Select BOM file to upload" msgstr "Stücklisten-Datei zum Upload auswählen" -#: part/forms.py:94 +#: part/forms.py:112 msgid "Select part category" msgstr "Teilekategorie wählen" -#: part/forms.py:102 +#: part/forms.py:126 msgid "Perform 'deep copy' which will duplicate all BOM data for this part" msgstr "" "Tiefe Kopie ausführen. Dies wird alle Daten der Stückliste für dieses Teil " "duplizieren" -#: part/forms.py:107 +#: part/forms.py:131 msgid "Confirm part creation" msgstr "Erstellen des Teils bestätigen" -#: part/forms.py:193 +#: part/forms.py:221 msgid "Input quantity for price calculation" msgstr "Eintragsmenge zur Preisberechnung" -#: part/forms.py:196 +#: part/forms.py:224 msgid "Select currency for price calculation" msgstr "Währung zur Preisberechnung wählen" -#: part/models.py:64 +#: part/models.py:65 msgid "Default location for parts in this category" msgstr "Standard-Standort für Teile dieser Kategorie" -#: part/models.py:67 +#: part/models.py:68 msgid "Default keywords for parts in this category" msgstr "Standard-Stichworte für Teile dieser Kategorie" -#: part/models.py:341 +#: part/models.py:427 msgid "Part must be unique for name, IPN and revision" msgstr "Namen, Teile- und Revisionsnummern müssen eindeutig sein" -#: part/models.py:355 -msgid "Part cannot be a template part if it is a variant of another part" -msgstr "Teil kann keine Vorlage sein wenn es Variante eines anderen Teils ist" - -#: part/models.py:356 -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" - -#: part/models.py:360 part/templates/part/detail.html:19 +#: part/models.py:442 part/templates/part/detail.html:19 msgid "Part name" msgstr "Name des Teils" -#: part/models.py:364 +#: part/models.py:446 msgid "Is this part a template part?" msgstr "Ist dieses Teil eine Vorlage?" -#: part/models.py:373 +#: part/models.py:455 msgid "Is this part a variant of another part?" msgstr "Ist dieses Teil eine Variante eines anderen Teils?" -#: part/models.py:375 +#: part/models.py:457 msgid "Part description" msgstr "Beschreibung des Teils" -#: part/models.py:377 +#: part/models.py:459 msgid "Part keywords to improve visibility in search results" msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern" -#: part/models.py:382 +#: part/models.py:464 msgid "Part category" msgstr "Teile-Kategorie" -#: part/models.py:384 +#: part/models.py:466 msgid "Internal Part Number" msgstr "Interne Teilenummer" -#: part/models.py:386 +#: part/models.py:468 msgid "Part revision or version number" msgstr "Revisions- oder Versionsnummer" -#: part/models.py:388 +#: part/models.py:470 msgid "Link to extenal URL" msgstr "Link zu einer Externen URL" -#: part/models.py:400 +#: part/models.py:482 msgid "Where is this item normally stored?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: part/models.py:444 +#: part/models.py:526 msgid "Default supplier part" msgstr "Standard-Zulieferer?" -#: part/models.py:447 +#: part/models.py:529 msgid "Minimum allowed stock level" msgstr "Minimal zulässiger Lagerbestand" -#: part/models.py:449 +#: part/models.py:531 msgid "Stock keeping units for this part" msgstr "Stock Keeping Units (SKU) für dieses Teil" -#: part/models.py:451 +#: part/models.py:533 msgid "Can this part be built from other parts?" msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?" -#: part/models.py:453 +#: part/models.py:535 msgid "Can this part be used to build other parts?" msgstr "Kann dieses Teil zum Bau von anderen genutzt werden?" -#: part/models.py:455 +#: part/models.py:537 msgid "Does this part have tracking for unique items?" msgstr "Hat dieses Teil Tracking für einzelne Objekte?" -#: part/models.py:457 +#: part/models.py:539 msgid "Can this part be purchased from external suppliers?" msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?" -#: part/models.py:459 +#: part/models.py:541 msgid "Can this part be sold to customers?" msgstr "Kann dieses Teil an Kunden verkauft werden?" -#: part/models.py:461 +#: part/models.py:543 msgid "Is this part active?" msgstr "Ist dieses Teil aktiv?" -#: part/models.py:463 +#: part/models.py:545 msgid "Is this a virtual part, such as a software product or license?" msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?" -#: part/models.py:465 +#: part/models.py:547 msgid "Part notes - supports Markdown formatting" msgstr "Bemerkungen - unterstüzt Markdown-Formatierung" -#: part/models.py:467 +#: part/models.py:549 msgid "Stored BOM checksum" msgstr "Prüfsumme der Stückliste gespeichert" -#: part/models.py:1069 +#: part/models.py:1212 +#, fuzzy +#| msgid "Stock item cannot be created for a template Part" +msgid "Test templates can only be created for trackable parts" +msgstr "Lagerobjekt kann nicht für Vorlagen-Teile angelegt werden" + +#: part/models.py:1229 +#, fuzzy +#| msgid "" +#| "A stock item with this serial number already exists for template part " +#| "{part}" +msgid "Test with this name already exists for this part" +msgstr "" +"Ein Teil mit dieser Seriennummer existiert bereits für die Teilevorlage " +"{part}" + +#: part/models.py:1248 templates/js/part.html:350 templates/js/stock.html:89 +#, fuzzy +#| msgid "Instance Name" +msgid "Test Name" +msgstr "Instanzname" + +#: part/models.py:1249 +#, fuzzy +#| msgid "Serial number for this item" +msgid "Enter a name for the test" +msgstr "Seriennummer für dieses Teil" + +#: part/models.py:1254 +#, fuzzy +#| msgid "Description" +msgid "Test Description" +msgstr "Beschreibung" + +#: part/models.py:1255 +#, fuzzy +#| msgid "Brief description of the build" +msgid "Enter description for this test" +msgstr "Kurze Beschreibung des Baus" + +#: part/models.py:1261 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:1266 templates/js/part.html:367 +#, fuzzy +#| msgid "Required Parts" +msgid "Requires Value" +msgstr "benötigte Teile" + +#: part/models.py:1267 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:1272 templates/js/part.html:374 +#, fuzzy +#| msgid "Delete Attachment" +msgid "Requires Attachment" +msgstr "Anhang löschen" + +#: part/models.py:1273 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:1306 msgid "Parameter template name must be unique" msgstr "Vorlagen-Name des Parameters muss eindeutig sein" -#: part/models.py:1074 +#: part/models.py:1311 msgid "Parameter Name" msgstr "Name des Parameters" -#: part/models.py:1076 +#: part/models.py:1313 msgid "Parameter Units" msgstr "Parameter Einheit" -#: part/models.py:1102 +#: part/models.py:1339 msgid "Parent Part" msgstr "Ausgangsteil" -#: part/models.py:1104 +#: part/models.py:1341 msgid "Parameter Template" msgstr "Parameter Vorlage" -#: part/models.py:1106 +#: part/models.py:1343 msgid "Parameter Value" msgstr "Parameter Wert" -#: part/models.py:1130 +#: part/models.py:1372 msgid "Select parent part" msgstr "Ausgangsteil auswählen" -#: part/models.py:1139 +#: part/models.py:1380 msgid "Select part to be used in BOM" msgstr "Teil für die Nutzung in der Stückliste auswählen" -#: part/models.py:1146 +#: part/models.py:1386 msgid "BOM quantity for this BOM item" msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil" -#: part/models.py:1149 +#: part/models.py:1389 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "Geschätzter Ausschuss (absolut oder prozentual)" -#: part/models.py:1152 +#: part/models.py:1392 msgid "BOM item reference" msgstr "Referenz des Objekts auf der Stückliste" -#: part/models.py:1155 +#: part/models.py:1395 msgid "BOM item notes" msgstr "Notizen zum Stücklisten-Objekt" -#: part/models.py:1157 +#: part/models.py:1397 msgid "BOM line checksum" msgstr "Prüfsumme der Stückliste" -#: part/models.py:1220 +#: part/models.py:1461 stock/models.py:233 +#, fuzzy +#| msgid "Overage must be an integer value or a percentage" +msgid "Quantity must be integer value for trackable parts" +msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein" + +#: part/models.py:1470 msgid "Part cannot be added to its own Bill of Materials" msgstr "Teil kann nicht zu seiner eigenen Stückliste hinzugefügt werden" -#: part/models.py:1227 +#: part/models.py:1477 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)" @@ -2001,15 +2113,15 @@ msgstr "Bestellung" #: part/templates/part/allocation.html:28 #: part/templates/part/allocation.html:45 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:52 -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:58 +#: stock/templates/stock/item_base.html:215 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:106 -#: templates/js/stock.html:407 +#: templates/js/stock.html:623 msgid "Stock Item" msgstr "Lagerobjekt" #: part/templates/part/allocation.html:20 -#: stock/templates/stock/item_base.html:128 +#: stock/templates/stock/item_base.html:156 msgid "Build Order" msgstr "Bauauftrag" @@ -2045,7 +2157,7 @@ msgstr "Stückliste bearbeiten" msgid "Validate Bill of Materials" msgstr "Stückliste validieren" -#: part/templates/part/bom.html:46 part/views.py:1358 +#: part/templates/part/bom.html:46 part/views.py:1412 msgid "Export Bill of Materials" msgstr "Stückliste exportieren" @@ -2070,11 +2182,11 @@ msgstr "Pfad zur Kategorie" msgid "Category Description" msgstr "Kategorie-Beschreibung" -#: part/templates/part/category.html:50 part/templates/part/detail.html:74 +#: part/templates/part/category.html:50 part/templates/part/detail.html:81 msgid "Default Location" msgstr "Standard-Lagerort" -#: part/templates/part/category.html:57 part/templates/part/detail.html:51 +#: part/templates/part/category.html:57 part/templates/part/detail.html:58 msgid "Keywords" msgstr "Schlüsselwörter" @@ -2090,7 +2202,7 @@ msgstr "Teile (inklusive Unter-Kategorien)" msgid "Part Details" msgstr "Teile-Details" -#: part/templates/part/detail.html:25 part/templates/part/part_base.html:78 +#: part/templates/part/detail.html:25 part/templates/part/part_base.html:81 msgid "IPN" msgstr "IPN (Interne Produktnummer)" @@ -2098,107 +2210,146 @@ msgstr "IPN (Interne Produktnummer)" msgid "Revision" msgstr "Revision" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:39 +#, fuzzy +#| msgid "Serial Number" +msgid "Next Serial Number" +msgstr "Seriennummer" + +#: part/templates/part/detail.html:51 msgid "Variant Of" msgstr "Variante von" -#: part/templates/part/detail.html:57 part/templates/part/set_category.html:15 -#: templates/js/part.html:181 +#: part/templates/part/detail.html:64 part/templates/part/set_category.html:15 +#: templates/js/part.html:190 msgid "Category" msgstr "Kategorie" -#: part/templates/part/detail.html:81 +#: part/templates/part/detail.html:88 msgid "Default Supplier" msgstr "Standard-Zulieferer" -#: part/templates/part/detail.html:89 part/templates/part/params.html:22 +#: part/templates/part/detail.html:96 part/templates/part/params.html:22 msgid "Units" msgstr "Einheiten" -#: part/templates/part/detail.html:95 +#: part/templates/part/detail.html:102 msgid "Minimum Stock" msgstr "Minimaler Lagerbestand" -#: part/templates/part/detail.html:101 templates/js/order.html:243 +#: part/templates/part/detail.html:108 templates/js/order.html:243 msgid "Creation Date" msgstr "Erstelldatum" -#: part/templates/part/detail.html:107 +#: part/templates/part/detail.html:114 msgid "Created By" msgstr "Erstellt von" -#: part/templates/part/detail.html:114 +#: part/templates/part/detail.html:121 msgid "Responsible User" msgstr "Verantwortlicher Benutzer" -#: part/templates/part/detail.html:123 +#: part/templates/part/detail.html:130 msgid "Virtual" msgstr "Virtuell" -#: part/templates/part/detail.html:126 +#: part/templates/part/detail.html:133 msgid "Part is virtual (not a physical part)" msgstr "Teil ist virtuell (kein physisches Teil)" -#: part/templates/part/detail.html:128 +#: part/templates/part/detail.html:135 msgid "Part is not a virtual part" msgstr "Teil ist nicht virtuell" -#: part/templates/part/detail.html:132 templates/table_filters.html:99 +#: part/templates/part/detail.html:139 stock/forms.py:194 +#: templates/js/table_filters.html:122 +msgid "Template" +msgstr "Vorlage" + +#: part/templates/part/detail.html:142 +#, fuzzy +#| msgid "Part cannot be a template part if it is a variant of another part" +msgid "Part is a template part (variants can be made from this part)" +msgstr "Teil kann keine Vorlage sein wenn es Variante eines anderen Teils ist" + +#: part/templates/part/detail.html:144 +#, fuzzy +#| msgid "Part is not a virtual part" +msgid "Part is not a template part" +msgstr "Teil ist nicht virtuell" + +#: part/templates/part/detail.html:148 templates/js/table_filters.html:134 msgid "Assembly" msgstr "Baugruppe" -#: part/templates/part/detail.html:135 +#: part/templates/part/detail.html:151 msgid "Part can be assembled from other parts" msgstr "Teil kann aus anderen Teilen angefertigt werden" -#: part/templates/part/detail.html:137 +#: part/templates/part/detail.html:153 msgid "Part cannot be assembled from other parts" msgstr "Teil kann nicht aus anderen Teilen angefertigt werden" -#: part/templates/part/detail.html:141 templates/table_filters.html:103 +#: part/templates/part/detail.html:157 templates/js/table_filters.html:138 msgid "Component" msgstr "Komponente" -#: part/templates/part/detail.html:144 +#: part/templates/part/detail.html:160 msgid "Part can be used in assemblies" msgstr "Teil kann in Baugruppen benutzt werden" -#: part/templates/part/detail.html:146 +#: part/templates/part/detail.html:162 msgid "Part cannot be used in assemblies" msgstr "Teil kann nicht in Baugruppen benutzt werden" -#: part/templates/part/detail.html:150 +#: part/templates/part/detail.html:166 templates/js/table_filters.html:150 msgid "Trackable" msgstr "nachverfolgbar" -#: part/templates/part/detail.html:153 +#: part/templates/part/detail.html:169 msgid "Part stock is tracked by serial number" msgstr "Teilebestand in der Seriennummer hinterlegt" -#: part/templates/part/detail.html:155 +#: part/templates/part/detail.html:171 msgid "Part stock is not tracked by serial number" msgstr "Teilebestand ist nicht in der Seriennummer hinterlegt" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:175 msgid "Purchaseable" msgstr "Kaufbar" -#: part/templates/part/detail.html:162 part/templates/part/detail.html:164 +#: part/templates/part/detail.html:178 part/templates/part/detail.html:180 msgid "Part can be purchased from external suppliers" msgstr "Teil kann von externen Zulieferern gekauft werden" -#: part/templates/part/detail.html:168 templates/table_filters.html:111 +#: part/templates/part/detail.html:184 templates/js/table_filters.html:146 msgid "Salable" msgstr "Verkäuflich" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part can be sold to customers" msgstr "Teil kann an Kunden verkauft werden" -#: part/templates/part/detail.html:173 +#: part/templates/part/detail.html:189 msgid "Part cannot be sold to customers" msgstr "Teil kann nicht an Kunden verkauft werden" +#: part/templates/part/detail.html:193 templates/js/table_filters.html:117 +msgid "Active" +msgstr "Aktiv" + +#: part/templates/part/detail.html:196 +#, fuzzy +#| msgid "This part is not active" +msgid "Part is active" +msgstr "Dieses Teil ist nicht aktiv" + +#: part/templates/part/detail.html:198 +#, fuzzy +#| msgid "This part is not active" +msgid "Part is not active" +msgstr "Dieses Teil ist nicht aktiv" + #: part/templates/part/notes.html:13 part/templates/part/notes.html:29 msgid "Part Notes" msgstr "Teil-Bemerkungen" @@ -2219,11 +2370,8 @@ msgstr "Parameter hinzufügen" msgid "New Parameter" msgstr "Neuer Parameter" -#: part/templates/part/params.html:20 -msgid "Name" -msgstr "Name" - -#: part/templates/part/params.html:21 +#: part/templates/part/params.html:21 stock/models.py:1252 +#: templates/js/stock.html:109 msgid "Value" msgstr "Wert" @@ -2244,55 +2392,68 @@ msgid "Part List" msgstr "Teileliste" #: part/templates/part/part_base.html:11 +#, fuzzy +#| msgid "Part is not a virtual part" +msgid "This part is a virtual part" +msgstr "Teil ist nicht virtuell" + +#: part/templates/part/part_base.html:16 msgid "This part is a template part." msgstr "Dieses Teil ist eine Vorlage." -#: part/templates/part/part_base.html:13 -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." - -#: part/templates/part/part_base.html:18 +#: part/templates/part/part_base.html:21 msgid "This part is a variant of" msgstr "Dieses Teil ist eine Variante von" -#: part/templates/part/part_base.html:30 templates/js/company.html:125 -#: templates/js/part.html:158 +#: part/templates/part/part_base.html:33 templates/js/company.html:125 +#: templates/js/part.html:167 msgid "Inactive" msgstr "Inaktiv" -#: part/templates/part/part_base.html:38 +#: part/templates/part/part_base.html:41 msgid "Star this part" msgstr "Teil favorisieren" -#: part/templates/part/part_base.html:44 +#: part/templates/part/part_base.html:47 msgid "Show pricing information" msgstr "Kosteninformationen ansehen" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:104 msgid "Available Stock" msgstr "Verfügbarer Lagerbestand" -#: part/templates/part/part_base.html:107 +#: part/templates/part/part_base.html:110 msgid "In Stock" msgstr "Auf Lager" -#: part/templates/part/part_base.html:114 +#: part/templates/part/part_base.html:117 msgid "Allocated to Build Orders" msgstr "Zu Bauaufträgen zugeordnet" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:124 msgid "Allocated to Sales Orders" msgstr "Zu Aufträgen zugeordnet" -#: part/templates/part/part_base.html:143 +#: part/templates/part/part_base.html:146 msgid "Can Build" msgstr "Herstellbar?" -#: part/templates/part/part_base.html:149 +#: part/templates/part/part_base.html:152 msgid "Underway" msgstr "unterwegs" +#: part/templates/part/part_tests.html:8 +#, fuzzy +#| msgid "Parameter Template" +msgid "Part Test Templates" +msgstr "Parameter Vorlage" + +#: part/templates/part/part_tests.html:14 +#, fuzzy +#| msgid "Edit Template" +msgid "Add Test Template" +msgstr "Vorlage bearbeiten" + #: part/templates/part/part_thumb.html:16 msgid "Select from existing images" msgstr "Aus vorhandenen Bildern auswählen" @@ -2326,7 +2487,7 @@ msgid "Create New Part" msgstr "Neues Teil anlegen" #: part/templates/part/stock_count.html:7 templates/js/bom.html:203 -#: templates/js/part.html:218 +#: templates/js/part.html:227 msgid "No Stock" msgstr "Kein Bestand" @@ -2366,18 +2527,22 @@ msgstr "Parameter" msgid "Variants" msgstr "Varianten" -#: part/templates/part/tabs.html:26 +#: part/templates/part/tabs.html:28 msgid "BOM" msgstr "Stückliste" -#: part/templates/part/tabs.html:32 +#: part/templates/part/tabs.html:34 msgid "Used In" msgstr "Benutzt in" -#: part/templates/part/tabs.html:53 stock/templates/stock/tabs.html:5 +#: part/templates/part/tabs.html:57 stock/templates/stock/tabs.html:6 msgid "Tracking" msgstr "Tracking" +#: part/templates/part/tabs.html:64 stock/templates/stock/item_base.html:259 +msgid "Tests" +msgstr "" + #: part/templates/part/track.html:8 msgid "Part Tracking" msgstr "Teilverfolgung" @@ -2390,164 +2555,186 @@ msgstr "Baugruppen" msgid "INACTIVE" msgstr "INAKTIV" -#: part/views.py:74 +#: part/views.py:75 msgid "Add part attachment" msgstr "Teilanhang hinzufügen" -#: part/views.py:122 +#: part/views.py:124 templates/attachment_table.html:30 +msgid "Edit attachment" +msgstr "Anhang bearbeiten" + +#: part/views.py:128 msgid "Part attachment updated" msgstr "Teilanhang aktualisiert" -#: part/views.py:137 +#: part/views.py:143 msgid "Delete Part Attachment" msgstr "Teilanhang löschen" -#: part/views.py:143 +#: part/views.py:149 msgid "Deleted part attachment" msgstr "Teilanhang gelöscht" -#: part/views.py:151 +#: part/views.py:158 +#, fuzzy +#| msgid "Create Part Parameter Template" +msgid "Create Test Template" +msgstr "Teilparametervorlage anlegen" + +#: part/views.py:185 +#, fuzzy +#| msgid "Edit Template" +msgid "Edit Test Template" +msgstr "Vorlage bearbeiten" + +#: part/views.py:199 +#, fuzzy +#| msgid "Delete Template" +msgid "Delete Test Template" +msgstr "Vorlage löschen" + +#: part/views.py:206 msgid "Set Part Category" msgstr "Teilkategorie auswählen" -#: part/views.py:199 +#: part/views.py:254 #, python-brace-format msgid "Set category for {n} parts" msgstr "Kategorie für {n} Teile setzen" -#: part/views.py:234 +#: part/views.py:289 msgid "Create Variant" msgstr "Variante anlegen" -#: part/views.py:304 +#: part/views.py:358 msgid "Duplicate Part" msgstr "Teil duplizieren" -#: part/views.py:309 +#: part/views.py:363 msgid "Copied part" msgstr "Teil kopiert" -#: part/views.py:420 +#: part/views.py:474 msgid "Create new part" msgstr "Neues Teil anlegen" -#: part/views.py:425 +#: part/views.py:479 msgid "Created new part" msgstr "Neues Teil angelegt" -#: part/views.py:599 +#: part/views.py:653 msgid "Part QR Code" msgstr "Teil-QR-Code" -#: part/views.py:616 +#: part/views.py:670 msgid "Upload Part Image" msgstr "Teilbild hochladen" -#: part/views.py:621 part/views.py:656 +#: part/views.py:675 part/views.py:710 msgid "Updated part image" msgstr "Teilbild aktualisiert" -#: part/views.py:630 +#: part/views.py:684 msgid "Select Part Image" msgstr "Teilbild auswählen" -#: part/views.py:659 +#: part/views.py:713 msgid "Part image not found" msgstr "Teilbild nicht gefunden" -#: part/views.py:670 +#: part/views.py:724 msgid "Edit Part Properties" msgstr "Teileigenschaften bearbeiten" -#: part/views.py:692 +#: part/views.py:746 msgid "Validate BOM" msgstr "BOM validieren" -#: part/views.py:854 +#: part/views.py:908 msgid "No BOM file provided" msgstr "Keine Stückliste angegeben" -#: part/views.py:1115 +#: part/views.py:1169 msgid "Enter a valid quantity" msgstr "Bitte eine gültige Anzahl eingeben" -#: part/views.py:1139 part/views.py:1142 +#: part/views.py:1193 part/views.py:1196 msgid "Select valid part" msgstr "Bitte ein gültiges Teil auswählen" -#: part/views.py:1148 +#: part/views.py:1202 msgid "Duplicate part selected" msgstr "Teil doppelt ausgewählt" -#: part/views.py:1176 +#: part/views.py:1230 msgid "Select a part" msgstr "Teil auswählen" -#: part/views.py:1180 +#: part/views.py:1234 msgid "Specify quantity" msgstr "Anzahl angeben" -#: part/views.py:1396 +#: part/views.py:1450 msgid "Confirm Part Deletion" msgstr "Löschen des Teils bestätigen" -#: part/views.py:1403 +#: part/views.py:1457 msgid "Part was deleted" msgstr "Teil wurde gelöscht" -#: part/views.py:1412 +#: part/views.py:1466 msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:1534 +#: part/views.py:1588 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:1542 +#: part/views.py:1596 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:1549 +#: part/views.py:1603 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:1557 +#: part/views.py:1611 msgid "Create Part Parameter" msgstr "Teilparameter anlegen" -#: part/views.py:1607 +#: part/views.py:1661 msgid "Edit Part Parameter" msgstr "Teilparameter bearbeiten" -#: part/views.py:1621 +#: part/views.py:1675 msgid "Delete Part Parameter" msgstr "Teilparameter löschen" -#: part/views.py:1637 +#: part/views.py:1691 msgid "Edit Part Category" msgstr "Teilkategorie bearbeiten" -#: part/views.py:1672 +#: part/views.py:1726 msgid "Delete Part Category" msgstr "Teilkategorie löschen" -#: part/views.py:1678 +#: part/views.py:1732 msgid "Part category was deleted" msgstr "Teilekategorie wurde gelöscht" -#: part/views.py:1686 +#: part/views.py:1740 msgid "Create new part category" msgstr "Teilkategorie anlegen" -#: part/views.py:1737 +#: part/views.py:1791 msgid "Create BOM item" msgstr "BOM-Position anlegen" -#: part/views.py:1803 +#: part/views.py:1857 msgid "Edit BOM item" msgstr "BOM-Position beaarbeiten" -#: part/views.py:1851 +#: part/views.py:1905 msgid "Confim BOM item deletion" msgstr "Löschung von BOM-Position bestätigen" @@ -2567,192 +2754,300 @@ msgstr "Lagerobjekt existiert nicht" msgid "No matching data" msgstr "Keine passenden Daten" -#: stock/forms.py:93 +#: report/models.py:167 +#, fuzzy +#| msgid "Template part" +msgid "Template name" +msgstr "Vorlagenteil" + +#: report/models.py:173 +msgid "Report template file" +msgstr "" + +#: report/models.py:177 +#, fuzzy +#| msgid "Supplier part description" +msgid "Report template description" +msgstr "Zuliefererbeschreibung des Teils" + +#: report/models.py:221 +msgid "Part query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:266 +msgid "Report asset file" +msgstr "" + +#: report/models.py:269 +#, fuzzy +#| msgid "Settings description" +msgid "Asset file description" +msgstr "Einstellungs-Beschreibung" + +#: stock/forms.py:194 +#, fuzzy +#| msgid "Select stock item to allocate" +msgid "Select test report template" +msgstr "Lagerobjekt für Zuordnung auswählen" + +#: stock/forms.py:202 msgid "Include stock items in sub locations" msgstr "Lagerobjekte in untergeordneten Lagerorten einschließen" -#: stock/forms.py:126 +#: stock/forms.py:235 msgid "Destination stock location" msgstr "Ziel-Lagerbestand" -#: stock/forms.py:132 +#: stock/forms.py:241 msgid "Confirm movement of stock items" msgstr "Bewegung der Lagerobjekte bestätigen" -#: stock/forms.py:134 +#: stock/forms.py:243 msgid "Set the destination as the default location for selected parts" msgstr "Setze das Ziel als Standard-Ziel für ausgewählte Teile" -#: stock/models.py:217 -#, python-brace-format -msgid "" -"A stock item with this serial number already exists for template part {part}" -msgstr "" -"Ein Teil mit dieser Seriennummer existiert bereits für die Teilevorlage " -"{part}" - -#: stock/models.py:222 -msgid "A stock item with this serial number already exists" +#: stock/models.py:208 +#, fuzzy +#| msgid "A stock item with this serial number already exists" +msgid "StockItem with this serial number already exists" msgstr "Ein Teil mit dieser Seriennummer existiert bereits" -#: stock/models.py:253 +#: stock/models.py:250 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "Teile-Typ ('{pf}') muss {pe} sein" -#: stock/models.py:263 stock/models.py:272 +#: stock/models.py:260 stock/models.py:269 msgid "Quantity must be 1 for item with a serial number" msgstr "Anzahl muss für Objekte mit Seriennummer \"1\" sein" -#: stock/models.py:264 +#: stock/models.py:261 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als \"1\" ist" -#: stock/models.py:280 -msgid "Stock item cannot be created for a template Part" -msgstr "Lagerobjekt kann nicht für Vorlagen-Teile angelegt werden" - -#: stock/models.py:289 +#: stock/models.py:282 msgid "Item cannot belong to itself" msgstr "Teil kann nicht zu sich selbst gehören" -#: stock/models.py:326 +#: stock/models.py:314 msgid "Parent Stock Item" msgstr "Eltern-Lagerobjekt" -#: stock/models.py:334 stock/templates/stock/item_base.html:108 +#: stock/models.py:322 stock/templates/stock/item_base.html:129 msgid "Base Part" msgstr "Basisteil" -#: stock/models.py:335 +#: stock/models.py:323 msgid "Base part" msgstr "Basis-Teil" -#: stock/models.py:345 +#: stock/models.py:332 msgid "Select a matching supplier part for this stock item" msgstr "Passenden Zulieferer für dieses Lagerobjekt auswählen" -#: stock/models.py:350 stock/templates/stock/stock_app_base.html:7 +#: stock/models.py:337 stock/templates/stock/stock_app_base.html:7 msgid "Stock Location" msgstr "Lagerort" -#: stock/models.py:353 +#: stock/models.py:340 msgid "Where is this stock item located?" msgstr "Wo wird dieses Teil normalerweise gelagert?" -#: stock/models.py:358 +#: stock/models.py:345 msgid "Installed In" msgstr "Installiert in" -#: stock/models.py:361 +#: stock/models.py:348 msgid "Is this item installed in another item?" msgstr "Ist dieses Teil in einem anderen verbaut?" -#: stock/models.py:367 +#: stock/models.py:364 msgid "Serial number for this item" msgstr "Seriennummer für dieses Teil" -#: stock/models.py:379 +#: stock/models.py:376 msgid "Batch code for this stock item" msgstr "Losnummer für dieses Lagerobjekt" -#: stock/models.py:383 +#: stock/models.py:380 msgid "Stock Quantity" msgstr "Bestand" -#: stock/models.py:392 +#: stock/models.py:389 msgid "Source Build" msgstr "Quellbau" -#: stock/models.py:394 +#: stock/models.py:391 msgid "Build for this stock item" msgstr "Bau für dieses Lagerobjekt" -#: stock/models.py:401 +#: stock/models.py:398 msgid "Source Purchase Order" msgstr "Quellbestellung" -#: stock/models.py:404 +#: stock/models.py:401 msgid "Purchase order for this stock item" msgstr "Bestellung für dieses Teil" -#: stock/models.py:410 +#: stock/models.py:407 msgid "Destination Sales Order" msgstr "Zielauftrag" -#: stock/models.py:417 +#: stock/models.py:414 msgid "Destination Build Order" msgstr "Zielbauauftrag" -#: stock/models.py:430 +#: stock/models.py:427 msgid "Delete this Stock Item when stock is depleted" msgstr "Objekt löschen wenn Lagerbestand aufgebraucht" -#: stock/models.py:440 stock/templates/stock/item_notes.html:13 -#: stock/templates/stock/item_notes.html:29 +#: stock/models.py:437 stock/templates/stock/item_notes.html:14 +#: stock/templates/stock/item_notes.html:30 msgid "Stock Item Notes" msgstr "Lagerobjekt-Notizen" -#: stock/models.py:604 +#: stock/models.py:489 +#, fuzzy +#| msgid "Item assigned to customer?" +msgid "Assigned to Customer" +msgstr "Ist dieses Objekt einem Kunden zugeteilt?" + +#: stock/models.py:491 +#, fuzzy +#| msgid "Item assigned to customer?" +msgid "Manually assigned to customer" +msgstr "Ist dieses Objekt einem Kunden zugeteilt?" + +#: stock/models.py:656 +#, fuzzy +#| msgid "Part is not a virtual part" +msgid "Part is not set as trackable" +msgstr "Teil ist nicht virtuell" + +#: stock/models.py:662 msgid "Quantity must be integer" msgstr "Anzahl muss eine Ganzzahl sein" -#: stock/models.py:610 +#: stock/models.py:668 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})" -#: stock/models.py:613 stock/models.py:616 +#: stock/models.py:671 stock/models.py:674 msgid "Serial numbers must be a list of integers" msgstr "Seriennummern muss eine Liste von Ganzzahlen sein" -#: stock/models.py:619 +#: stock/models.py:677 msgid "Quantity does not match serial numbers" msgstr "Anzahl stimmt nicht mit den Seriennummern überein" -#: stock/models.py:629 +#: stock/models.py:687 msgid "Serial numbers already exist: " msgstr "Seriennummern existieren bereits:" -#: stock/models.py:651 +#: stock/models.py:712 msgid "Add serial number" msgstr "Seriennummer hinzufügen" -#: stock/models.py:654 +#: stock/models.py:715 #, python-brace-format msgid "Serialized {n} items" msgstr "{n} Teile serialisiert" -#: stock/models.py:751 +#: stock/models.py:826 msgid "StockItem cannot be moved as it is not in stock" msgstr "Lagerobjekt kann nicht bewegt werden, da kein Bestand vorhanden ist" -#: stock/models.py:960 +#: stock/models.py:1153 msgid "Tracking entry title" msgstr "Name des Eintrags-Trackings" -#: stock/models.py:962 +#: stock/models.py:1155 msgid "Entry notes" msgstr "Eintrags-Notizen" -#: stock/models.py:964 +#: stock/models.py:1157 msgid "Link to external page for further information" msgstr "Link auf externe Seite für weitere Informationen" -#: stock/templates/stock/item.html:12 +#: stock/models.py:1217 +#, fuzzy +#| msgid "Serial number for this item" +msgid "Value must be provided for this test" +msgstr "Seriennummer für dieses Teil" + +#: stock/models.py:1223 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:1240 +msgid "Test" +msgstr "" + +#: stock/models.py:1241 +#, fuzzy +#| msgid "Part name" +msgid "Test name" +msgstr "Name des Teils" + +#: stock/models.py:1246 +#, fuzzy +#| msgid "Search Results" +msgid "Result" +msgstr "Suchergebnisse" + +#: stock/models.py:1247 templates/js/table_filters.html:53 +msgid "Test result" +msgstr "" + +#: stock/models.py:1253 +msgid "Test output value" +msgstr "" + +#: stock/models.py:1259 +#, fuzzy +#| msgid "Attachments" +msgid "Attachment" +msgstr "Anhänge" + +#: stock/models.py:1260 +#, fuzzy +#| msgid "Delete attachment" +msgid "Test result attachment" +msgstr "Anhang löschen" + +#: stock/models.py:1266 +#, fuzzy +#| msgid "Edit notes" +msgid "Test notes" +msgstr "Bermerkungen bearbeiten" + +#: stock/templates/stock/item.html:11 msgid "Stock Tracking Information" msgstr "Informationen zum Lagerbestands-Tracking" +#: stock/templates/stock/item_attachments.html:10 +#, fuzzy +#| msgid "Stock Item Notes" +msgid "Stock Item Attachments" +msgstr "Lagerobjekt-Notizen" + #: stock/templates/stock/item_base.html:20 +#, fuzzy +#| msgid "This stock item does not have any child items" +msgid "This stock item has not passed all required tests" +msgstr "Dieses Lagerobjekt hat keine Kinder" + +#: stock/templates/stock/item_base.html:26 msgid "This stock item is allocated to Sales Order" msgstr "Dieses Lagerobjekt ist dem Auftrag zugewiesen" -#: stock/templates/stock/item_base.html:26 +#: stock/templates/stock/item_base.html:32 msgid "This stock item is allocated to Build" msgstr "Dieses Lagerobjekt ist dem Bau zugewiesen" -#: stock/templates/stock/item_base.html:32 +#: stock/templates/stock/item_base.html:38 msgid "" "This stock item is serialized - it has a unique serial number and the " "quantity cannot be adjusted." @@ -2760,42 +3055,110 @@ msgstr "" "Dieses Lagerobjekt ist serialisiert. Es hat eine eindeutige Seriennummer und " "die Anzahl kann nicht angepasst werden." -#: stock/templates/stock/item_base.html:36 +#: stock/templates/stock/item_base.html:42 msgid "This stock item cannot be deleted as it has child items" msgstr "Dieses Lagerobjekt kann nicht gelöscht werden, da es Kinder besitzt" -#: stock/templates/stock/item_base.html:40 +#: stock/templates/stock/item_base.html:46 msgid "" "This stock item will be automatically deleted when all stock is depleted." msgstr "" "Dieses Lagerobjekt wird automatisch gelöscht wenn der Lagerbestand " "aufgebraucht ist." -#: stock/templates/stock/item_base.html:103 +#: stock/templates/stock/item_base.html:74 +#, fuzzy +#| msgid "Add stock" +msgid "Add to stock" +msgstr "Bestand hinzufügen" + +#: stock/templates/stock/item_base.html:77 +#, fuzzy +#| msgid "Remove From Stock" +msgid "Take from stock" +msgstr "Aus Lagerbestand entfernen" + +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:14 +msgid "Count stock" +msgstr "Bestand zählen" + +#: stock/templates/stock/item_base.html:84 +#, fuzzy +#| msgid "Serialize Stock" +msgid "Serialize stock" +msgstr "Lagerbestand erfassen" + +#: stock/templates/stock/item_base.html:90 stock/views.py:232 +#, fuzzy +#| msgid "Item assigned to customer?" +msgid "Assign to Customer" +msgstr "Ist dieses Objekt einem Kunden zugeteilt?" + +#: stock/templates/stock/item_base.html:94 +#, fuzzy +#| msgid "Order stock" +msgid "Transfer stock" +msgstr "Bestand bestellen" + +#: stock/templates/stock/item_base.html:97 +#, fuzzy +#| msgid "Count stock items" +msgid "Duplicate stock item" +msgstr "Lagerobjekte zählen" + +#: stock/templates/stock/item_base.html:102 +#, fuzzy +#| msgid "Count stock items" +msgid "Convert stock to variant" +msgstr "Lagerobjekte zählen" + +#: stock/templates/stock/item_base.html:107 +msgid "Generate test report" +msgstr "" + +#: stock/templates/stock/item_base.html:111 +#, fuzzy +#| msgid "Edit Stock Item" +msgid "Edit stock item" +msgstr "Lagerobjekt bearbeiten" + +#: stock/templates/stock/item_base.html:115 +#, fuzzy +#| msgid "Delete Stock Item" +msgid "Delete stock item" +msgstr "Lagerobjekt löschen" + +#: stock/templates/stock/item_base.html:124 msgid "Stock Item Details" msgstr "Lagerbestands-Details" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:144 msgid "Belongs To" msgstr "Gehört zu" -#: stock/templates/stock/item_base.html:141 +#: stock/templates/stock/item_base.html:166 +#, fuzzy +#| msgid "No stock location set" +msgid "No location set" +msgstr "Kein Lagerort gesetzt" + +#: stock/templates/stock/item_base.html:173 msgid "Unique Identifier" msgstr "Eindeutiger Bezeichner" -#: stock/templates/stock/item_base.html:182 +#: stock/templates/stock/item_base.html:214 msgid "Parent Item" msgstr "Elternposition" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:239 msgid "Last Updated" msgstr "Zuletzt aktualisiert" -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:244 msgid "Last Stocktake" msgstr "Letzte Inventur" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:248 msgid "No stocktake performed" msgstr "Keine Inventur ausgeführt" @@ -2807,6 +3170,24 @@ msgstr "Kind-Lagerobjekte" msgid "This stock item does not have any child items" msgstr "Dieses Lagerobjekt hat keine Kinder" +#: stock/templates/stock/item_tests.html:10 stock/templates/stock/tabs.html:13 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item_tests.html:17 +#, fuzzy +#| msgid "Delete Template" +msgid "Delete Test Data" +msgstr "Vorlage löschen" + +#: stock/templates/stock/item_tests.html:19 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item_tests.html:21 +msgid "Test Report" +msgstr "" + #: stock/templates/stock/location.html:13 msgid "All stock items" msgstr "Alle Lagerobjekte" @@ -2854,154 +3235,232 @@ msgstr "Objekt-Details" msgid "Stock Locations" msgstr "Lagerobjekt-Standorte" -#: stock/templates/stock/tabs.html:8 -msgid "Children" -msgstr "Kinder" +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:934 +#, fuzzy +#| msgid "Count Stock Items" +msgid "Convert Stock Item" +msgstr "Lagerobjekte zählen" -#: stock/templates/stock/tabs.html:13 +#: stock/templates/stock/stockitem_convert.html:8 +#, fuzzy +#| msgid "This stock item is allocated to Build" +msgid "This stock item is current an instance of " +msgstr "Dieses Lagerobjekt ist dem Bau zugewiesen" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tabs.html:21 msgid "Builds" msgstr "Baue" -#: stock/views.py:117 +#: stock/templates/stock/tabs.html:38 +msgid "Children" +msgstr "Kinder" + +#: stock/views.py:113 msgid "Edit Stock Location" msgstr "Lagerobjekt-Standort bearbeiten" -#: stock/views.py:141 +#: stock/views.py:137 msgid "Stock Location QR code" msgstr "QR-Code für diesen Standort" -#: stock/views.py:156 +#: stock/views.py:155 +#, fuzzy +#| msgid "Add Attachment" +msgid "Add Stock Item Attachment" +msgstr "Anhang hinzufügen" + +#: stock/views.py:200 +#, fuzzy +#| msgid "Edit Stock Item" +msgid "Edit Stock Item Attachment" +msgstr "Lagerobjekt bearbeiten" + +#: stock/views.py:216 +#, fuzzy +#| msgid "Delete Part Attachment" +msgid "Delete Stock Item Attachment" +msgstr "Teilanhang löschen" + +#: stock/views.py:270 +#, fuzzy +#| msgid "Delete Template" +msgid "Delete All Test Data" +msgstr "Vorlage löschen" + +#: stock/views.py:285 +#, fuzzy +#| msgid "Confirm Part Deletion" +msgid "Confirm test data deletion" +msgstr "Löschen des Teils bestätigen" + +#: stock/views.py:305 +msgid "Add Test Result" +msgstr "" + +#: stock/views.py:342 +#, fuzzy +#| msgid "Edit Template" +msgid "Edit Test Result" +msgstr "Vorlage bearbeiten" + +#: stock/views.py:359 +#, fuzzy +#| msgid "Delete Template" +msgid "Delete Test Result" +msgstr "Vorlage löschen" + +#: stock/views.py:370 +#, fuzzy +#| msgid "Delete Template" +msgid "Select Test Report Template" +msgstr "Vorlage löschen" + +#: stock/views.py:384 +#, fuzzy +#| msgid "Select valid part" +msgid "Select valid template" +msgstr "Bitte ein gültiges Teil auswählen" + +#: stock/views.py:436 msgid "Stock Export Options" msgstr "Lagerbestandsexportoptionen" -#: stock/views.py:276 +#: stock/views.py:556 msgid "Stock Item QR Code" msgstr "Lagerobjekt-QR-Code" -#: stock/views.py:299 +#: stock/views.py:579 msgid "Adjust Stock" msgstr "Lagerbestand anpassen" -#: stock/views.py:408 +#: stock/views.py:688 msgid "Move Stock Items" msgstr "Lagerobjekte bewegen" -#: stock/views.py:409 +#: stock/views.py:689 msgid "Count Stock Items" msgstr "Lagerobjekte zählen" -#: stock/views.py:410 +#: stock/views.py:690 msgid "Remove From Stock" msgstr "Aus Lagerbestand entfernen" -#: stock/views.py:411 +#: stock/views.py:691 msgid "Add Stock Items" msgstr "Lagerobjekte hinzufügen" -#: stock/views.py:412 +#: stock/views.py:692 msgid "Delete Stock Items" msgstr "Lagerobjekte löschen" -#: stock/views.py:440 +#: stock/views.py:720 msgid "Must enter integer value" msgstr "Nur Ganzzahl eingeben" -#: stock/views.py:445 +#: stock/views.py:725 msgid "Quantity must be positive" msgstr "Anzahl muss positiv sein" -#: stock/views.py:452 +#: stock/views.py:732 #, python-brace-format msgid "Quantity must not exceed {x}" msgstr "Anzahl darf {x} nicht überschreiten" -#: stock/views.py:460 +#: stock/views.py:740 msgid "Confirm stock adjustment" msgstr "Bestands-Anpassung bestätigen" -#: stock/views.py:531 +#: stock/views.py:811 #, python-brace-format msgid "Added stock to {n} items" msgstr "Vorrat zu {n} Lagerobjekten hinzugefügt" -#: stock/views.py:546 +#: stock/views.py:826 #, python-brace-format msgid "Removed stock from {n} items" msgstr "Vorrat von {n} Lagerobjekten entfernt" -#: stock/views.py:559 +#: stock/views.py:839 #, python-brace-format msgid "Counted stock for {n} items" msgstr "Bestand für {n} Objekte erfasst" -#: stock/views.py:587 +#: stock/views.py:867 msgid "No items were moved" msgstr "Keine Lagerobjekte wurden bewegt" -#: stock/views.py:590 +#: stock/views.py:870 #, python-brace-format msgid "Moved {n} items to {dest}" msgstr "{n} Teile nach {dest} bewegt" -#: stock/views.py:609 +#: stock/views.py:889 #, python-brace-format msgid "Deleted {n} stock items" msgstr "{n} Teile im Lager gelöscht" -#: stock/views.py:621 +#: stock/views.py:901 msgid "Edit Stock Item" msgstr "Lagerobjekt bearbeiten" -#: stock/views.py:657 +#: stock/views.py:961 msgid "Create new Stock Location" msgstr "Neuen Lager-Standort erstellen" -#: stock/views.py:678 +#: stock/views.py:982 msgid "Serialize Stock" msgstr "Lagerbestand erfassen" -#: stock/views.py:758 +#: stock/views.py:1074 msgid "Create new Stock Item" msgstr "Neues Lagerobjekt hinzufügen" -#: stock/views.py:822 +#: stock/views.py:1167 msgid "Copy Stock Item" msgstr "Lagerobjekt kopieren" -#: stock/views.py:893 +#: stock/views.py:1240 msgid "Invalid quantity" msgstr "Ungültige Menge" -#: stock/views.py:896 +#: stock/views.py:1247 msgid "Invalid part selection" msgstr "Ungültige Teileauswahl" -#: stock/views.py:943 +#: stock/views.py:1296 #, python-brace-format msgid "Created {n} new stock items" msgstr "{n} neue Lagerobjekte erstellt" -#: stock/views.py:960 stock/views.py:973 +#: stock/views.py:1315 stock/views.py:1331 msgid "Created new stock item" msgstr "Neues Lagerobjekt erstellt" -#: stock/views.py:990 +#: stock/views.py:1350 msgid "Delete Stock Location" msgstr "Standort löschen" -#: stock/views.py:1003 +#: stock/views.py:1363 msgid "Delete Stock Item" msgstr "Lagerobjekt löschen" -#: stock/views.py:1014 +#: stock/views.py:1374 msgid "Delete Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag löschen" -#: stock/views.py:1031 +#: stock/views.py:1391 msgid "Edit Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag bearbeiten" -#: stock/views.py:1040 +#: stock/views.py:1400 msgid "Add Stock Tracking Entry" msgstr "Lagerbestands-Tracking-Eintrag hinzufügen" @@ -3013,6 +3472,12 @@ msgstr "Suchergebnisse" msgid "No results found" msgstr "Keine Ergebnisse gefunden" +#: templates/InvenTree/settings/part.html:9 +#, fuzzy +#| msgid "Edit Part Parameter Template" +msgid "Part Parameter Templates" +msgstr "Teilparametervorlage bearbeiten" + #: templates/InvenTree/settings/part.html:28 msgid "No part parameter templates found" msgstr "Keine Teilparametervorlagen gefunden" @@ -3065,6 +3530,26 @@ msgstr "Code auf GitHub ansehen" msgid "Submit Bug Report" msgstr "Fehlerbericht senden" +#: templates/attachment_table.html:5 +msgid "Add Attachment" +msgstr "Anhang hinzufügen" + +#: templates/attachment_table.html:13 +msgid "File" +msgstr "Datei" + +#: templates/attachment_table.html:14 +msgid "Comment" +msgstr "Kommentar" + +#: templates/attachment_table.html:15 +msgid "Uploaded" +msgstr "" + +#: templates/attachment_table.html:33 +msgid "Delete attachment" +msgstr "Anhang löschen" + #: templates/js/bom.html:143 msgid "Open subassembly" msgstr "Unterbaugruppe öffnen" @@ -3109,11 +3594,11 @@ msgstr "Keine Firmeninformation gefunden" msgid "No supplier parts found" msgstr "Keine Zuliefererteile gefunden" -#: templates/js/company.html:117 templates/js/part.html:136 +#: templates/js/company.html:117 templates/js/part.html:145 msgid "Template part" msgstr "Vorlagenteil" -#: templates/js/company.html:121 templates/js/part.html:140 +#: templates/js/company.html:121 templates/js/part.html:149 msgid "Assembled part" msgstr "Baugruppe" @@ -3125,7 +3610,7 @@ msgstr "Link" msgid "No purchase orders found" msgstr "Keine Bestellungen gefunden" -#: templates/js/order.html:170 templates/js/stock.html:389 +#: templates/js/order.html:170 templates/js/stock.html:605 msgid "Date" msgstr "Datum" @@ -3137,58 +3622,208 @@ msgstr "Keine Aufträge gefunden" msgid "Shipment Date" msgstr "Versanddatum" -#: templates/js/part.html:104 templates/js/stock.html:196 +#: templates/js/part.html:106 templates/js/stock.html:403 msgid "Select" msgstr "Auswählen" -#: templates/js/part.html:144 +#: templates/js/part.html:153 msgid "Starred part" msgstr "Favoritenteil" -#: templates/js/part.html:148 +#: templates/js/part.html:157 msgid "Salable part" msgstr "Verkäufliches Teil" -#: templates/js/part.html:187 +#: templates/js/part.html:196 msgid "No category" msgstr "Keine Kategorie" -#: templates/js/part.html:205 templates/table_filters.html:95 +#: templates/js/part.html:214 templates/js/table_filters.html:130 msgid "Low stock" msgstr "Bestand niedrig" -#: templates/js/part.html:214 +#: templates/js/part.html:223 msgid "Building" msgstr "Im Bau" -#: templates/js/part.html:232 +#: templates/js/part.html:241 msgid "No parts found" msgstr "Keine Teile gefunden" -#: templates/js/stock.html:66 +#: templates/js/part.html:301 +msgid "YES" +msgstr "" + +#: templates/js/part.html:303 +msgid "NO" +msgstr "" + +#: templates/js/part.html:337 +#, fuzzy +#| msgid "No stock items matching query" +msgid "No test templates matching query" +msgstr "Keine zur Anfrage passenden Lagerobjekte" + +#: templates/js/part.html:387 templates/js/stock.html:62 +#, fuzzy +#| msgid "Edit Sales Order" +msgid "Edit test result" +msgstr "Auftrag bearbeiten" + +#: templates/js/part.html:388 templates/js/stock.html:63 +#, fuzzy +#| msgid "Delete attachment" +msgid "Delete test result" +msgstr "Anhang löschen" + +#: templates/js/part.html:394 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/stock.html:25 +msgid "PASS" +msgstr "" + +#: templates/js/stock.html:27 +msgid "FAIL" +msgstr "" + +#: templates/js/stock.html:32 +msgid "NO RESULT" +msgstr "" + +#: templates/js/stock.html:58 +msgid "Add test result" +msgstr "" + +#: templates/js/stock.html:76 +#, fuzzy +#| msgid "No results found" +msgid "No test results found" +msgstr "Keine Ergebnisse gefunden" + +#: templates/js/stock.html:117 +#, fuzzy +#| msgid "Shipment Date" +msgid "Test Date" +msgstr "Versanddatum" + +#: templates/js/stock.html:258 msgid "No stock items matching query" msgstr "Keine zur Anfrage passenden Lagerobjekte" -#: templates/js/stock.html:251 +#: templates/js/stock.html:355 templates/js/stock.html:370 +#, fuzzy +#| msgid "Include sublocations" +msgid "Undefined location" +msgstr "Unterlagerorte einschließen" + +#: templates/js/stock.html:467 msgid "StockItem has been allocated" msgstr "Lagerobjekt wurde zugewiesen" -#: templates/js/stock.html:256 +#: templates/js/stock.html:472 msgid "StockItem is lost" msgstr "Lagerobjekt verloren" -#: templates/js/stock.html:284 +#: templates/js/stock.html:500 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/stock.html:446 -msgid "User" -msgstr "Benutzer" - -#: templates/js/stock.html:455 +#: templates/js/stock.html:671 msgid "No user information" msgstr "Keine Benutzerinformation" +#: templates/js/table_filters.html:19 +msgid "Include sublocations" +msgstr "Unterlagerorte einschließen" + +#: templates/js/table_filters.html:20 +msgid "Include stock in sublocations" +msgstr "Bestand in Unterlagerorten einschließen" + +#: templates/js/table_filters.html:24 +msgid "Active parts" +msgstr "Aktive Teile" + +#: templates/js/table_filters.html:25 +msgid "Show stock for active parts" +msgstr "Bestand aktiver Teile anzeigen" + +#: templates/js/table_filters.html:29 templates/js/table_filters.html:30 +msgid "Stock status" +msgstr "Bestandsstatus" + +#: templates/js/table_filters.html:34 +msgid "Is allocated" +msgstr "Ist zugeordnet" + +#: templates/js/table_filters.html:35 +msgid "Item has been alloacted" +msgstr "Position wurde zugeordnet" + +#: templates/js/table_filters.html:38 +#, fuzzy +#| msgid "Serial Number" +msgid "Serial number GTE" +msgstr "Seriennummer" + +#: templates/js/table_filters.html:39 +#, fuzzy +#| msgid "Serial number for this item" +msgid "Serial number greater than or equal to" +msgstr "Seriennummer für dieses Teil" + +#: templates/js/table_filters.html:42 +#, fuzzy +#| msgid "Serial Number" +msgid "Serial number LTE" +msgstr "Seriennummer" + +#: templates/js/table_filters.html:43 +#, fuzzy +#| msgid "Serial numbers already exist: " +msgid "Serial number less than or equal to" +msgstr "Seriennummern existieren bereits:" + +#: templates/js/table_filters.html:72 +msgid "Build status" +msgstr "Bau-Status" + +#: templates/js/table_filters.html:84 templates/js/table_filters.html:97 +msgid "Order status" +msgstr "Bestellstatus" + +#: templates/js/table_filters.html:89 templates/js/table_filters.html:102 +#, fuzzy +#| msgid "Cascading" +msgid "Outstanding" +msgstr "Kaskadierend" + +#: templates/js/table_filters.html:112 +msgid "Include subcategories" +msgstr "Unterkategorien einschließen" + +#: templates/js/table_filters.html:113 +msgid "Include parts in subcategories" +msgstr "Teile in Unterkategorien einschließen" + +#: templates/js/table_filters.html:118 +msgid "Show active parts" +msgstr "Aktive Teile anzeigen" + +#: templates/js/table_filters.html:126 +msgid "Stock available" +msgstr "Bestand verfügbar" + +#: templates/js/table_filters.html:142 +msgid "Starred" +msgstr "Favorit" + +#: templates/js/table_filters.html:154 +msgid "Purchasable" +msgstr "Käuflich" + #: templates/navbar.html:14 msgid "Buy" msgstr "Kaufen" @@ -3233,10 +3868,6 @@ msgstr "Bestand hinzufügen" msgid "Remove stock" msgstr "Bestand entfernen" -#: templates/stock_table.html:14 -msgid "Count stock" -msgstr "Bestand zählen" - #: templates/stock_table.html:15 msgid "Move stock" msgstr "Bestand bewegen" @@ -3249,91 +3880,24 @@ msgstr "Bestand bestellen" msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/table_filters.html:21 -msgid "Include sublocations" -msgstr "Unterlagerorte einschließen" +#~ 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" -#: templates/table_filters.html:22 -msgid "Include stock in sublocations" -msgstr "Bestand in Unterlagerorten einschließen" - -#: templates/table_filters.html:26 -msgid "Active parts" -msgstr "Aktive Teile" - -#: templates/table_filters.html:27 -msgid "Show stock for active parts" -msgstr "Bestand aktiver Teile anzeigen" - -#: templates/table_filters.html:31 templates/table_filters.html:32 -msgid "Stock status" -msgstr "Bestandsstatus" - -#: templates/table_filters.html:36 -msgid "Is allocated" -msgstr "Ist zugeordnet" - -#: templates/table_filters.html:37 -msgid "Item has been alloacted" -msgstr "Position wurde zugeordnet" - -#: templates/table_filters.html:46 -msgid "Build status" -msgstr "Bau-Status" - -#: templates/table_filters.html:57 templates/table_filters.html:66 -msgid "Order status" -msgstr "Bestellstatus" - -#: templates/table_filters.html:77 -msgid "Include subcategories" -msgstr "Unterkategorien einschließen" - -#: templates/table_filters.html:78 -msgid "Include parts in subcategories" -msgstr "Teile in Unterkategorien einschließen" - -#: templates/table_filters.html:82 -msgid "Active" -msgstr "Aktiv" - -#: templates/table_filters.html:83 -msgid "Show active parts" -msgstr "Aktive Teile anzeigen" - -#: templates/table_filters.html:87 -msgid "Template" -msgstr "Vorlage" - -#: templates/table_filters.html:91 -msgid "Stock available" -msgstr "Bestand verfügbar" - -#: templates/table_filters.html:107 -msgid "Starred" -msgstr "Favorit" - -#: templates/table_filters.html:115 -msgid "Purchasable" -msgstr "Käuflich" +#~ 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." #~ msgid "Allocate Stock to Build" #~ msgstr "Lagerbestand dem Bau zuweisen" -#~ msgid "Required Parts" -#~ msgstr "benötigte Teile" - #~ msgid "Allocate" #~ msgstr "zuweisen" #~ msgid "Line" #~ msgstr "Position" -#~ msgid "This part is not active" -#~ msgstr "Dieses Teil ist nicht aktiv" - -#~ msgid "Item assigned to customer?" -#~ msgstr "Ist dieses Objekt einem Kunden zugeteilt?" - #~ msgid "URL" #~ msgstr "URL" diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po index 976f7abf2f..fb77271de8 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: 2020-05-04 09:50+0000\n" +"POT-Creation-Date: 2020-06-09 06:17+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,84 +18,112 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:61 +#: InvenTree/api.py:86 msgid "No action specified" msgstr "" -#: InvenTree/api.py:75 +#: InvenTree/api.py:100 msgid "No matching action found" msgstr "" -#: InvenTree/api.py:106 +#: InvenTree/api.py:131 msgid "No barcode data provided" msgstr "" -#: InvenTree/api.py:121 +#: InvenTree/api.py:146 msgid "Barcode successfully decoded" msgstr "" -#: InvenTree/api.py:124 +#: InvenTree/api.py:149 msgid "Barcode plugin returned incorrect response" msgstr "" -#: InvenTree/api.py:134 +#: InvenTree/api.py:159 msgid "Unknown barcode format" msgstr "" -#: InvenTree/helpers.py:258 order/models.py:150 order/models.py:224 +#: InvenTree/forms.py:101 build/forms.py:37 +msgid "Confirm" +msgstr "" + +#: InvenTree/forms.py:117 +msgid "Confirm item deletion" +msgstr "" + +#: InvenTree/forms.py:149 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:156 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/helpers.py:328 order/models.py:187 order/models.py:261 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:261 +#: InvenTree/helpers.py:331 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:282 InvenTree/helpers.py:299 +#: InvenTree/helpers.py:352 InvenTree/helpers.py:369 #, python-brace-format msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:286 InvenTree/helpers.py:289 InvenTree/helpers.py:292 -#: InvenTree/helpers.py:303 +#: InvenTree/helpers.py:356 InvenTree/helpers.py:359 InvenTree/helpers.py:362 +#: InvenTree/helpers.py:373 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:309 +#: InvenTree/helpers.py:379 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:313 +#: InvenTree/helpers.py:383 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:54 +#: InvenTree/models.py:60 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:56 +#: InvenTree/models.py:62 msgid "File comment" msgstr "" -#: InvenTree/settings.py:295 +#: InvenTree/models.py:68 templates/js/stock.html:662 +msgid "User" +msgstr "" + +#: InvenTree/models.py:106 part/templates/part/params.html:20 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:112 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/settings.py:330 msgid "English" msgstr "" -#: InvenTree/settings.py:296 +#: InvenTree/settings.py:331 msgid "German" msgstr "" -#: InvenTree/settings.py:297 +#: InvenTree/settings.py:332 msgid "French" msgstr "" -#: InvenTree/settings.py:298 +#: InvenTree/settings.py:333 msgid "Polish" msgstr "" #: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 -#: InvenTree/status_codes.py:230 +#: InvenTree/status_codes.py:235 msgid "Pending" msgstr "" @@ -103,61 +131,61 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:233 +#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:238 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:97 InvenTree/status_codes.py:137 -#: InvenTree/status_codes.py:232 +#: InvenTree/status_codes.py:237 msgid "Cancelled" msgstr "" #: InvenTree/status_codes.py:98 InvenTree/status_codes.py:138 -#: InvenTree/status_codes.py:174 +#: InvenTree/status_codes.py:179 msgid "Lost" msgstr "" #: InvenTree/status_codes.py:99 InvenTree/status_codes.py:139 -#: InvenTree/status_codes.py:176 +#: InvenTree/status_codes.py:181 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:136 InvenTree/status_codes.py:177 +#: InvenTree/status_codes.py:136 InvenTree/status_codes.py:182 #: order/templates/order/sales_order_base.html:98 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:175 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:171 +#: InvenTree/status_codes.py:176 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:172 +#: InvenTree/status_codes.py:177 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:178 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:175 +#: InvenTree/status_codes.py:180 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:178 +#: InvenTree/status_codes.py:183 msgid "Used for Build" msgstr "" -#: InvenTree/status_codes.py:179 +#: InvenTree/status_codes.py:184 msgid "Installed in Stock Item" msgstr "" -#: InvenTree/status_codes.py:231 build/templates/build/allocate.html:349 +#: InvenTree/status_codes.py:236 build/templates/build/allocate.html:349 #: order/templates/order/sales_order_detail.html:220 -#: part/templates/part/tabs.html:21 templates/js/build.html:120 +#: part/templates/part/tabs.html:23 templates/js/build.html:120 msgid "Allocated" msgstr "" @@ -186,159 +214,168 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:547 +#: InvenTree/views.py:563 msgid "Database Statistics" msgstr "" -#: build/forms.py:37 -msgid "Confirm" +#: build/forms.py:58 +msgid "Location of completed parts" msgstr "" -#: build/forms.py:54 stock/forms.py:34 +#: build/forms.py:62 +msgid "Serial numbers" +msgstr "" + +#: build/forms.py:64 stock/forms.py:93 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: build/forms.py:56 +#: build/forms.py:67 msgid "Confirm build completion" msgstr "" -#: build/models.py:57 build/templates/build/build_base.html:65 +#: build/models.py:67 +msgid "Build quantity must be integer value for trackable parts" +msgstr "" + +#: build/models.py:73 build/templates/build/build_base.html:65 msgid "Build Title" msgstr "" -#: build/models.py:60 +#: build/models.py:76 msgid "Brief description of the build" msgstr "" -#: build/models.py:68 build/templates/build/build_base.html:86 +#: build/models.py:84 build/templates/build/build_base.html:86 msgid "Parent Build" msgstr "" -#: build/models.py:69 +#: build/models.py:85 msgid "Parent build to which this build is allocated" msgstr "" -#: build/models.py:74 build/templates/build/allocate.html:320 +#: build/models.py:90 build/templates/build/allocate.html:320 #: build/templates/build/auto_allocate.html:18 #: build/templates/build/build_base.html:70 -#: build/templates/build/detail.html:22 order/models.py:464 +#: build/templates/build/detail.html:22 order/models.py:501 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:145 -#: order/templates/order/receive_parts.html:19 +#: order/templates/order/receive_parts.html:19 part/models.py:240 #: part/templates/part/part_app_base.html:7 #: part/templates/part/set_category.html:13 templates/js/bom.html:135 #: templates/js/build.html:41 templates/js/company.html:109 -#: templates/js/part.html:111 templates/js/stock.html:206 +#: templates/js/part.html:120 templates/js/stock.html:422 msgid "Part" msgstr "" -#: build/models.py:83 +#: build/models.py:99 msgid "Select part to build" msgstr "" -#: build/models.py:88 +#: build/models.py:104 msgid "Sales Order Reference" msgstr "" -#: build/models.py:92 +#: build/models.py:108 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:97 +#: build/models.py:113 msgid "Source Location" msgstr "" -#: build/models.py:101 +#: build/models.py:117 msgid "" "Select location to take stock from for this build (leave blank to take from " "any stock location)" msgstr "" -#: build/models.py:105 +#: build/models.py:121 msgid "Build Quantity" msgstr "" -#: build/models.py:108 +#: build/models.py:124 msgid "Number of parts to build" msgstr "" -#: build/models.py:112 part/templates/part/part_base.html:138 +#: build/models.py:128 part/templates/part/part_base.html:141 msgid "Build Status" msgstr "" -#: build/models.py:116 +#: build/models.py:132 msgid "Build status code" msgstr "" -#: build/models.py:120 stock/models.py:377 +#: build/models.py:136 stock/models.py:374 msgid "Batch Code" msgstr "" -#: build/models.py:124 +#: build/models.py:140 msgid "Batch code for this build output" msgstr "" -#: build/models.py:139 build/templates/build/detail.html:55 +#: build/models.py:155 build/templates/build/detail.html:55 #: company/templates/company/supplier_part_base.html:60 #: company/templates/company/supplier_part_detail.html:24 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85 -#: stock/models.py:371 stock/templates/stock/item_base.html:189 +#: part/templates/part/detail.html:74 part/templates/part/part_base.html:88 +#: stock/models.py:368 stock/templates/stock/item_base.html:221 msgid "External Link" msgstr "" -#: build/models.py:140 stock/models.py:373 +#: build/models.py:156 stock/models.py:370 msgid "Link to external URL" msgstr "" -#: build/models.py:144 build/templates/build/tabs.html:14 company/models.py:302 -#: company/templates/company/tabs.html:26 order/templates/order/po_tabs.html:15 +#: build/models.py:160 build/templates/build/tabs.html:14 company/models.py:302 +#: company/templates/company/tabs.html:33 order/templates/order/po_tabs.html:15 #: order/templates/order/purchase_order_detail.html:200 -#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 -#: stock/models.py:439 stock/templates/stock/tabs.html:17 -#: templates/js/bom.html:229 templates/js/stock.html:290 +#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:73 +#: stock/models.py:436 stock/models.py:1265 stock/templates/stock/tabs.html:26 +#: templates/js/bom.html:229 templates/js/stock.html:113 +#: templates/js/stock.html:506 msgid "Notes" msgstr "" -#: build/models.py:145 +#: build/models.py:161 msgid "Extra build notes" msgstr "" -#: build/models.py:451 +#: build/models.py:467 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" -#: build/models.py:454 +#: build/models.py:470 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:460 order/models.py:548 +#: build/models.py:476 order/models.py:585 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:463 order/models.py:551 +#: build/models.py:479 order/models.py:588 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:466 +#: build/models.py:482 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:496 +#: build/models.py:512 msgid "Build to allocate parts" msgstr "" -#: build/models.py:503 +#: build/models.py:519 msgid "Stock Item to allocate to build" msgstr "" -#: build/models.py:516 +#: build/models.py:532 msgid "Stock quantity to allocate to build" msgstr "" #: build/templates/build/allocate.html:17 -#: company/templates/company/detail_part.html:18 order/views.py:763 +#: company/templates/company/detail_part.html:18 order/views.py:779 msgid "Order Parts" msgstr "" @@ -360,8 +397,8 @@ msgstr "" #: build/templates/build/allocate.html:161 #: order/templates/order/sales_order_detail.html:68 -#: order/templates/order/sales_order_detail.html:150 stock/models.py:365 -#: stock/templates/stock/item_base.html:148 +#: order/templates/order/sales_order_detail.html:150 stock/models.py:362 +#: stock/templates/stock/item_base.html:180 msgid "Serial Number" msgstr "" @@ -376,18 +413,18 @@ msgstr "" #: order/templates/order/sales_order_detail.html:152 #: part/templates/part/allocation.html:16 #: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:20 #: stock/templates/stock/item_base.html:26 -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:32 +#: stock/templates/stock/item_base.html:186 #: stock/templates/stock/stock_adjust.html:18 templates/js/bom.html:172 -#: templates/js/build.html:52 templates/js/stock.html:437 +#: templates/js/build.html:52 templates/js/stock.html:653 msgid "Quantity" msgstr "" #: build/templates/build/allocate.html:177 #: build/templates/build/auto_allocate.html:20 -#: stock/templates/stock/item_base.html:134 -#: stock/templates/stock/stock_adjust.html:17 templates/js/stock.html:277 +#: stock/templates/stock/item_base.html:162 +#: stock/templates/stock/stock_adjust.html:17 templates/js/stock.html:493 msgid "Location" msgstr "" @@ -409,11 +446,11 @@ msgstr "" #: company/templates/company/supplier_part_base.html:53 #: company/templates/company/supplier_part_detail.html:27 #: order/templates/order/purchase_order_detail.html:157 -#: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 +#: part/templates/part/detail.html:45 part/templates/part/set_category.html:14 #: templates/js/bom.html:157 templates/js/company.html:60 #: templates/js/order.html:157 templates/js/order.html:230 -#: templates/js/part.html:167 templates/js/stock.html:227 -#: templates/js/stock.html:418 +#: templates/js/part.html:176 templates/js/part.html:355 +#: templates/js/stock.html:443 templates/js/stock.html:634 msgid "Description" msgstr "" @@ -423,7 +460,8 @@ msgstr "" msgid "Reference" msgstr "" -#: build/templates/build/allocate.html:338 +#: build/templates/build/allocate.html:338 part/models.py:1260 +#: templates/js/part.html:359 templates/js/table_filters.html:63 msgid "Required" msgstr "" @@ -466,7 +504,7 @@ msgstr "" #: build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:34 #: build/templates/build/complete.html:6 -#: stock/templates/stock/item_base.html:168 templates/js/build.html:33 +#: stock/templates/stock/item_base.html:200 templates/js/build.html:33 #: templates/navbar.html:12 msgid "Build" msgstr "" @@ -486,19 +524,19 @@ msgstr "" #: build/templates/build/build_base.html:80 #: build/templates/build/detail.html:42 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:221 templates/js/build.html:57 +#: stock/templates/stock/item_base.html:253 templates/js/build.html:57 #: templates/js/order.html:162 templates/js/order.html:235 -#: templates/js/stock.html:264 +#: templates/js/stock.html:480 msgid "Status" msgstr "" -#: build/templates/build/build_base.html:93 order/models.py:462 +#: build/templates/build/build_base.html:93 order/models.py:499 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_notes.html:10 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:27 -#: stock/templates/stock/item_base.html:122 templates/js/order.html:209 +#: stock/templates/stock/item_base.html:150 templates/js/order.html:209 msgid "Sales Order" msgstr "" @@ -565,7 +603,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:48 -#: stock/templates/stock/item_base.html:161 templates/js/stock.html:272 +#: stock/templates/stock/item_base.html:193 templates/js/stock.html:488 msgid "Batch" msgstr "" @@ -593,7 +631,7 @@ msgstr "" #: build/templates/build/index.html:6 build/templates/build/index.html:14 #: order/templates/order/so_builds.html:11 order/templates/order/so_tabs.html:9 -#: part/templates/part/tabs.html:28 +#: part/templates/part/tabs.html:30 msgid "Build Orders" msgstr "" @@ -608,14 +646,14 @@ msgstr "" #: build/templates/build/notes.html:20 company/templates/company/notes.html:17 #: order/templates/order/order_notes.html:21 #: order/templates/order/sales_order_notes.html:26 -#: part/templates/part/notes.html:20 stock/templates/stock/item_notes.html:21 +#: part/templates/part/notes.html:20 stock/templates/stock/item_notes.html:22 msgid "Save" msgstr "" #: build/templates/build/notes.html:33 company/templates/company/notes.html:30 #: order/templates/order/order_notes.html:32 #: order/templates/order/sales_order_notes.html:37 -#: part/templates/part/notes.html:32 stock/templates/stock/item_notes.html:32 +#: part/templates/part/notes.html:32 stock/templates/stock/item_notes.html:33 msgid "Edit notes" msgstr "" @@ -660,7 +698,7 @@ msgstr "" msgid "Check the confirmation box at the bottom of the list" msgstr "" -#: build/views.py:148 build/views.py:446 +#: build/views.py:148 build/views.py:456 msgid "Unallocate Stock" msgstr "" @@ -668,7 +706,7 @@ msgstr "" msgid "Confirm unallocation of build stock" msgstr "" -#: build/views.py:162 +#: build/views.py:162 stock/views.py:286 msgid "Check the confirmation box" msgstr "" @@ -676,56 +714,64 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/views.py:258 +#: build/views.py:201 stock/views.py:1118 stock/views.py:1232 +msgid "Next available serial number is" +msgstr "" + +#: build/views.py:203 +msgid "Next available serial numbers are" +msgstr "" + +#: build/views.py:268 msgid "Confirm completion of build" msgstr "" -#: build/views.py:265 +#: build/views.py:275 msgid "Invalid location selected" msgstr "" -#: build/views.py:290 stock/views.py:917 +#: build/views.py:300 stock/views.py:1268 #, python-brace-format msgid "The following serial numbers already exist: ({sn})" msgstr "" -#: build/views.py:311 +#: build/views.py:321 msgid "Build marked as COMPLETE" msgstr "" -#: build/views.py:387 +#: build/views.py:397 msgid "Start new Build" msgstr "" -#: build/views.py:412 +#: build/views.py:422 msgid "Created new build" msgstr "" -#: build/views.py:422 +#: build/views.py:432 msgid "Edit Build Details" msgstr "" -#: build/views.py:427 +#: build/views.py:437 msgid "Edited build" msgstr "" -#: build/views.py:436 +#: build/views.py:446 msgid "Delete Build" msgstr "" -#: build/views.py:451 +#: build/views.py:461 msgid "Removed parts from build allocation" msgstr "" -#: build/views.py:461 +#: build/views.py:471 msgid "Allocate new Part" msgstr "" -#: build/views.py:614 +#: build/views.py:624 msgid "Edit Stock Allocation" msgstr "" -#: build/views.py:618 +#: build/views.py:628 msgid "Updated Build Item" msgstr "" @@ -857,6 +903,11 @@ msgstr "" msgid "Part packaging" msgstr "" +#: company/templates/company/assigned_stock.html:9 +#: company/templates/company/tabs.html:25 +msgid "Assigned Stock" +msgstr "" + #: company/templates/company/company_base.html:7 #: company/templates/company/company_base.html:22 templates/js/company.html:38 msgid "Company" @@ -896,17 +947,18 @@ msgstr "" #: company/templates/company/detail.html:21 #: company/templates/company/supplier_part_base.html:66 -#: company/templates/company/supplier_part_detail.html:21 order/models.py:111 +#: company/templates/company/supplier_part_detail.html:21 order/models.py:148 #: order/templates/order/order_base.html:74 #: order/templates/order/order_wizard/select_pos.html:30 -#: stock/templates/stock/item_base.html:196 templates/js/company.html:52 +#: stock/templates/stock/item_base.html:228 templates/js/company.html:52 #: templates/js/company.html:134 templates/js/order.html:144 msgid "Supplier" msgstr "" -#: company/templates/company/detail.html:26 order/models.py:277 -#: order/templates/order/sales_order_base.html:73 templates/js/company.html:44 -#: templates/js/order.html:217 +#: company/templates/company/detail.html:26 order/models.py:314 +#: order/templates/order/sales_order_base.html:73 stock/models.py:357 +#: stock/models.py:358 stock/templates/stock/item_base.html:137 +#: templates/js/company.html:44 templates/js/order.html:217 msgid "Customer" msgstr "" @@ -961,7 +1013,7 @@ msgid "Supplier Stock" msgstr "" #: company/templates/company/detail_stock.html:34 -#: company/templates/company/supplier_part_stock.html:38 +#: company/templates/company/supplier_part_stock.html:33 #: part/templates/part/stock.html:54 templates/stock_table.html:5 msgid "Export" msgstr "" @@ -983,7 +1035,7 @@ msgstr "" #: company/templates/company/tabs.html:17 #: order/templates/order/purchase_orders.html:7 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/orders.html:9 part/templates/part/tabs.html:43 +#: part/templates/part/orders.html:9 part/templates/part/tabs.html:45 #: templates/navbar.html:18 msgid "Purchase Orders" msgstr "" @@ -1002,7 +1054,7 @@ msgstr "" #: company/templates/company/tabs.html:22 #: order/templates/order/sales_orders.html:7 #: order/templates/order/sales_orders.html:12 -#: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:48 +#: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:50 #: templates/navbar.html:25 msgid "Sales Orders" msgstr "" @@ -1018,8 +1070,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:6 -#: company/templates/company/supplier_part_base.html:19 stock/models.py:344 -#: stock/templates/stock/item_base.html:201 templates/js/company.html:150 +#: company/templates/company/supplier_part_base.html:19 stock/models.py:331 +#: stock/templates/stock/item_base.html:233 templates/js/company.html:150 msgid "Supplier Part" msgstr "" @@ -1099,14 +1151,14 @@ msgstr "" msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part_stock.html:61 +#: company/templates/company/supplier_part_stock.html:56 #: order/templates/order/purchase_order_detail.html:38 #: order/templates/order/purchase_order_detail.html:118 #: part/templates/part/stock.html:91 msgid "New Location" msgstr "" -#: company/templates/company/supplier_part_stock.html:62 +#: company/templates/company/supplier_part_stock.html:57 #: part/templates/part/stock.html:92 msgid "Create New Location" msgstr "" @@ -1116,9 +1168,9 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_tabs.html:8 -#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 -#: stock/templates/stock/location.html:12 templates/js/part.html:194 -#: templates/js/stock.html:235 templates/navbar.html:11 +#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18 +#: stock/templates/stock/location.html:12 templates/js/part.html:203 +#: templates/js/stock.html:451 templates/navbar.html:11 msgid "Stock" msgstr "" @@ -1127,13 +1179,13 @@ msgid "Orders" msgstr "" #: company/templates/company/tabs.html:9 -#: order/templates/order/receive_parts.html:14 +#: order/templates/order/receive_parts.html:14 part/models.py:241 #: part/templates/part/category.html:83 templates/navbar.html:10 #: templates/stats.html:8 templates/stats.html:17 msgid "Parts" msgstr "" -#: company/views.py:50 part/templates/part/tabs.html:37 +#: company/views.py:50 part/templates/part/tabs.html:39 #: templates/navbar.html:16 msgid "Suppliers" msgstr "" @@ -1239,99 +1291,108 @@ msgstr "" msgid "Receive parts to this location" msgstr "" -#: order/models.py:71 +#: order/forms.py:99 +msgid "Enter purchase order number" +msgstr "" + +#: order/forms.py:126 +msgid "Enter sales order number" +msgstr "" + +#: order/models.py:108 msgid "Order reference" msgstr "" -#: order/models.py:73 +#: order/models.py:110 msgid "Order description" msgstr "" -#: order/models.py:75 +#: order/models.py:112 msgid "Link to external page" msgstr "" -#: order/models.py:85 +#: order/models.py:122 msgid "Order notes" msgstr "" -#: order/models.py:114 +#: order/models.py:151 msgid "Supplier order reference code" msgstr "" -#: order/models.py:148 order/models.py:222 part/views.py:1113 -#: stock/models.py:607 +#: order/models.py:185 order/models.py:259 part/views.py:1167 +#: stock/models.py:243 stock/models.py:665 stock/views.py:1243 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:153 +#: order/models.py:190 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:217 +#: order/models.py:254 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:283 +#: order/models.py:320 msgid "Customer order reference code" msgstr "" -#: order/models.py:322 +#: order/models.py:359 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:399 +#: order/models.py:436 msgid "Item quantity" msgstr "" -#: order/models.py:401 +#: order/models.py:438 msgid "Line item reference" msgstr "" -#: order/models.py:403 +#: order/models.py:440 msgid "Line item notes" msgstr "" -#: order/models.py:429 order/templates/order/order_base.html:9 +#: order/models.py:466 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:23 -#: stock/templates/stock/item_base.html:175 templates/js/order.html:136 +#: stock/templates/stock/item_base.html:207 templates/js/order.html:136 msgid "Purchase Order" msgstr "" -#: order/models.py:442 +#: order/models.py:479 msgid "Supplier part" msgstr "" -#: order/models.py:445 +#: order/models.py:482 msgid "Number of items received" msgstr "" -#: order/models.py:539 +#: order/models.py:576 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:541 +#: order/models.py:578 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:544 +#: order/models.py:581 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:554 +#: order/models.py:591 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:571 +#: order/models.py:608 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:574 +#: order/models.py:611 msgid "Enter stock allocation quantity" msgstr "" #: order/templates/order/delete_attachment.html:5 -#: part/templates/part/attachment_delete.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 "" @@ -1422,44 +1483,14 @@ msgstr "" msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_attachments.html:17 -#: order/templates/order/so_attachments.html:17 -#: part/templates/part/attachments.html:14 -msgid "Add Attachment" -msgstr "" - -#: order/templates/order/po_attachments.html:24 -#: order/templates/order/so_attachments.html:24 -#: part/templates/part/attachments.html:22 -msgid "File" -msgstr "" - -#: order/templates/order/po_attachments.html:25 -#: order/templates/order/so_attachments.html:25 -#: part/templates/part/attachments.html:23 -msgid "Comment" -msgstr "" - -#: order/templates/order/po_attachments.html:36 -#: order/templates/order/so_attachments.html:36 -#: part/templates/part/attachments.html:34 part/views.py:118 -msgid "Edit attachment" -msgstr "" - -#: order/templates/order/po_attachments.html:39 -#: order/templates/order/so_attachments.html:39 -#: part/templates/part/attachments.html:37 -msgid "Delete attachment" -msgstr "" - #: order/templates/order/po_tabs.html:8 order/templates/order/so_tabs.html:16 -#: part/templates/part/tabs.html:60 +#: part/templates/part/tabs.html:70 stock/templates/stock/tabs.html:32 msgid "Attachments" msgstr "" #: order/templates/order/purchase_order_detail.html:16 -#: order/templates/order/sales_order_detail.html:17 order/views.py:1071 -#: order/views.py:1185 +#: order/templates/order/sales_order_detail.html:17 order/views.py:1087 +#: order/views.py:1201 msgid "Add Line Item" msgstr "" @@ -1508,7 +1539,7 @@ msgid "Select parts to receive against this order" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:128 templates/js/part.html:210 +#: part/templates/part/part_base.html:131 templates/js/part.html:219 msgid "On Order" msgstr "" @@ -1538,6 +1569,7 @@ msgstr "" #: order/templates/order/sales_order_cancel.html:8 #: order/templates/order/sales_order_ship.html:9 +#: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" msgstr "" @@ -1599,143 +1631,143 @@ msgstr "" msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:98 order/views.py:138 part/views.py:79 +#: order/views.py:102 order/views.py:149 part/views.py:85 stock/views.py:166 msgid "Added attachment" msgstr "" -#: order/views.py:134 +#: order/views.py:141 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:162 order/views.py:183 +#: order/views.py:176 order/views.py:197 msgid "Edit Attachment" msgstr "" -#: order/views.py:166 order/views.py:187 +#: order/views.py:180 order/views.py:201 msgid "Attachment updated" msgstr "" -#: order/views.py:202 order/views.py:216 +#: order/views.py:216 order/views.py:230 msgid "Delete Attachment" msgstr "" -#: order/views.py:208 order/views.py:222 +#: order/views.py:222 order/views.py:236 stock/views.py:222 msgid "Deleted attachment" msgstr "" -#: order/views.py:273 +#: order/views.py:287 msgid "Create Purchase Order" msgstr "" -#: order/views.py:303 +#: order/views.py:318 msgid "Create Sales Order" msgstr "" -#: order/views.py:332 +#: order/views.py:348 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:352 +#: order/views.py:368 msgid "Edit Sales Order" msgstr "" -#: order/views.py:368 +#: order/views.py:384 msgid "Cancel Order" msgstr "" -#: order/views.py:383 order/views.py:415 +#: order/views.py:399 order/views.py:431 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:401 +#: order/views.py:417 msgid "Cancel sales order" msgstr "" -#: order/views.py:421 +#: order/views.py:437 msgid "Could not cancel order" msgstr "" -#: order/views.py:435 +#: order/views.py:451 msgid "Issue Order" msgstr "" -#: order/views.py:450 +#: order/views.py:466 msgid "Confirm order placement" msgstr "" -#: order/views.py:471 +#: order/views.py:487 msgid "Complete Order" msgstr "" -#: order/views.py:506 +#: order/views.py:522 msgid "Ship Order" msgstr "" -#: order/views.py:522 +#: order/views.py:538 msgid "Confirm order shipment" msgstr "" -#: order/views.py:528 +#: order/views.py:544 msgid "Could not ship order" msgstr "" -#: order/views.py:579 +#: order/views.py:595 msgid "Receive Parts" msgstr "" -#: order/views.py:646 +#: order/views.py:662 msgid "Items received" msgstr "" -#: order/views.py:660 +#: order/views.py:676 msgid "No destination set" msgstr "" -#: order/views.py:705 +#: order/views.py:721 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:711 +#: order/views.py:727 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:717 +#: order/views.py:733 msgid "No lines specified" msgstr "" -#: order/views.py:1091 +#: order/views.py:1107 msgid "Invalid Purchase Order" msgstr "" -#: order/views.py:1099 +#: order/views.py:1115 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1104 +#: order/views.py:1120 msgid "Invalid SupplierPart selection" msgstr "" -#: order/views.py:1236 order/views.py:1254 +#: order/views.py:1252 order/views.py:1270 msgid "Edit Line Item" msgstr "" -#: order/views.py:1270 order/views.py:1282 +#: order/views.py:1286 order/views.py:1298 msgid "Delete Line Item" msgstr "" -#: order/views.py:1275 order/views.py:1287 +#: order/views.py:1291 order/views.py:1303 msgid "Deleted line item" msgstr "" -#: order/views.py:1296 +#: order/views.py:1312 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1365 +#: order/views.py:1381 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1380 +#: order/views.py:1396 msgid "Remove allocation" msgstr "" @@ -1752,215 +1784,255 @@ msgstr "" msgid "Error reading BOM file (incorrect row size)" msgstr "" -#: part/forms.py:37 stock/forms.py:91 +#: part/forms.py:55 stock/forms.py:200 msgid "File Format" msgstr "" -#: part/forms.py:37 stock/forms.py:91 +#: part/forms.py:55 stock/forms.py:200 msgid "Select output file format" msgstr "" -#: part/forms.py:39 +#: part/forms.py:57 msgid "Cascading" msgstr "" -#: part/forms.py:39 +#: part/forms.py:57 msgid "Download cascading / multi-level BOM" msgstr "" -#: part/forms.py:58 +#: part/forms.py:76 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:70 +#: part/forms.py:88 msgid "Select BOM file to upload" msgstr "" -#: part/forms.py:94 +#: part/forms.py:112 msgid "Select part category" msgstr "" -#: part/forms.py:102 +#: part/forms.py:126 msgid "Perform 'deep copy' which will duplicate all BOM data for this part" msgstr "" -#: part/forms.py:107 +#: part/forms.py:131 msgid "Confirm part creation" msgstr "" -#: part/forms.py:193 +#: part/forms.py:221 msgid "Input quantity for price calculation" msgstr "" -#: part/forms.py:196 +#: part/forms.py:224 msgid "Select currency for price calculation" msgstr "" -#: part/models.py:64 +#: part/models.py:65 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:67 +#: part/models.py:68 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:341 +#: part/models.py:427 msgid "Part must be unique for name, IPN and revision" msgstr "" -#: part/models.py:355 -msgid "Part cannot be a template part if it is a variant of another part" -msgstr "" - -#: part/models.py:356 -msgid "Part cannot be a variant of another part if it is already a template" -msgstr "" - -#: part/models.py:360 part/templates/part/detail.html:19 +#: part/models.py:442 part/templates/part/detail.html:19 msgid "Part name" msgstr "" -#: part/models.py:364 +#: part/models.py:446 msgid "Is this part a template part?" msgstr "" -#: part/models.py:373 +#: part/models.py:455 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:375 +#: part/models.py:457 msgid "Part description" msgstr "" -#: part/models.py:377 +#: part/models.py:459 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:382 +#: part/models.py:464 msgid "Part category" msgstr "" -#: part/models.py:384 +#: part/models.py:466 msgid "Internal Part Number" msgstr "" -#: part/models.py:386 +#: part/models.py:468 msgid "Part revision or version number" msgstr "" -#: part/models.py:388 +#: part/models.py:470 msgid "Link to extenal URL" msgstr "" -#: part/models.py:400 +#: part/models.py:482 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:444 +#: part/models.py:526 msgid "Default supplier part" msgstr "" -#: part/models.py:447 +#: part/models.py:529 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:449 +#: part/models.py:531 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:451 +#: part/models.py:533 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:453 +#: part/models.py:535 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:455 +#: part/models.py:537 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:457 +#: part/models.py:539 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:459 +#: part/models.py:541 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:461 +#: part/models.py:543 msgid "Is this part active?" msgstr "" -#: part/models.py:463 +#: part/models.py:545 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:465 +#: part/models.py:547 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:467 +#: part/models.py:549 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1069 +#: part/models.py:1212 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:1229 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:1248 templates/js/part.html:350 templates/js/stock.html:89 +msgid "Test Name" +msgstr "" + +#: part/models.py:1249 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:1254 +msgid "Test Description" +msgstr "" + +#: part/models.py:1255 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:1261 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:1266 templates/js/part.html:367 +msgid "Requires Value" +msgstr "" + +#: part/models.py:1267 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:1272 templates/js/part.html:374 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:1273 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:1306 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:1074 +#: part/models.py:1311 msgid "Parameter Name" msgstr "" -#: part/models.py:1076 +#: part/models.py:1313 msgid "Parameter Units" msgstr "" -#: part/models.py:1102 +#: part/models.py:1339 msgid "Parent Part" msgstr "" -#: part/models.py:1104 +#: part/models.py:1341 msgid "Parameter Template" msgstr "" -#: part/models.py:1106 +#: part/models.py:1343 msgid "Parameter Value" msgstr "" -#: part/models.py:1130 +#: part/models.py:1372 msgid "Select parent part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1380 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:1146 +#: part/models.py:1386 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:1149 +#: part/models.py:1389 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:1152 +#: part/models.py:1392 msgid "BOM item reference" msgstr "" -#: part/models.py:1155 +#: part/models.py:1395 msgid "BOM item notes" msgstr "" -#: part/models.py:1157 +#: part/models.py:1397 msgid "BOM line checksum" msgstr "" -#: part/models.py:1220 +#: part/models.py:1461 stock/models.py:233 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:1470 msgid "Part cannot be added to its own Bill of Materials" msgstr "" -#: part/models.py:1227 +#: part/models.py:1477 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" @@ -1979,15 +2051,15 @@ msgstr "" #: part/templates/part/allocation.html:28 #: part/templates/part/allocation.html:45 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:52 -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:58 +#: stock/templates/stock/item_base.html:215 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:106 -#: templates/js/stock.html:407 +#: templates/js/stock.html:623 msgid "Stock Item" msgstr "" #: part/templates/part/allocation.html:20 -#: stock/templates/stock/item_base.html:128 +#: stock/templates/stock/item_base.html:156 msgid "Build Order" msgstr "" @@ -2023,7 +2095,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:46 part/views.py:1358 +#: part/templates/part/bom.html:46 part/views.py:1412 msgid "Export Bill of Materials" msgstr "" @@ -2048,11 +2120,11 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:50 part/templates/part/detail.html:74 +#: part/templates/part/category.html:50 part/templates/part/detail.html:81 msgid "Default Location" msgstr "" -#: part/templates/part/category.html:57 part/templates/part/detail.html:51 +#: part/templates/part/category.html:57 part/templates/part/detail.html:58 msgid "Keywords" msgstr "" @@ -2068,7 +2140,7 @@ msgstr "" msgid "Part Details" msgstr "" -#: part/templates/part/detail.html:25 part/templates/part/part_base.html:78 +#: part/templates/part/detail.html:25 part/templates/part/part_base.html:81 msgid "IPN" msgstr "" @@ -2076,107 +2148,136 @@ msgstr "" msgid "Revision" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:39 +msgid "Next Serial Number" +msgstr "" + +#: part/templates/part/detail.html:51 msgid "Variant Of" msgstr "" -#: part/templates/part/detail.html:57 part/templates/part/set_category.html:15 -#: templates/js/part.html:181 +#: part/templates/part/detail.html:64 part/templates/part/set_category.html:15 +#: templates/js/part.html:190 msgid "Category" msgstr "" -#: part/templates/part/detail.html:81 +#: part/templates/part/detail.html:88 msgid "Default Supplier" msgstr "" -#: part/templates/part/detail.html:89 part/templates/part/params.html:22 +#: part/templates/part/detail.html:96 part/templates/part/params.html:22 msgid "Units" msgstr "" -#: part/templates/part/detail.html:95 +#: part/templates/part/detail.html:102 msgid "Minimum Stock" msgstr "" -#: part/templates/part/detail.html:101 templates/js/order.html:243 +#: part/templates/part/detail.html:108 templates/js/order.html:243 msgid "Creation Date" msgstr "" -#: part/templates/part/detail.html:107 +#: part/templates/part/detail.html:114 msgid "Created By" msgstr "" -#: part/templates/part/detail.html:114 +#: part/templates/part/detail.html:121 msgid "Responsible User" msgstr "" -#: part/templates/part/detail.html:123 +#: part/templates/part/detail.html:130 msgid "Virtual" msgstr "" -#: part/templates/part/detail.html:126 +#: part/templates/part/detail.html:133 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/detail.html:128 +#: part/templates/part/detail.html:135 msgid "Part is not a virtual part" msgstr "" -#: part/templates/part/detail.html:132 templates/table_filters.html:99 -msgid "Assembly" +#: part/templates/part/detail.html:139 stock/forms.py:194 +#: templates/js/table_filters.html:122 +msgid "Template" msgstr "" -#: part/templates/part/detail.html:135 -msgid "Part can be assembled from other parts" -msgstr "" - -#: part/templates/part/detail.html:137 -msgid "Part cannot be assembled from other parts" -msgstr "" - -#: part/templates/part/detail.html:141 templates/table_filters.html:103 -msgid "Component" +#: part/templates/part/detail.html:142 +msgid "Part is a template part (variants can be made from this part)" msgstr "" #: part/templates/part/detail.html:144 -msgid "Part can be used in assemblies" +msgid "Part is not a template part" msgstr "" -#: part/templates/part/detail.html:146 -msgid "Part cannot be used in assemblies" +#: part/templates/part/detail.html:148 templates/js/table_filters.html:134 +msgid "Assembly" msgstr "" -#: part/templates/part/detail.html:150 -msgid "Trackable" +#: part/templates/part/detail.html:151 +msgid "Part can be assembled from other parts" msgstr "" #: part/templates/part/detail.html:153 +msgid "Part cannot be assembled from other parts" +msgstr "" + +#: part/templates/part/detail.html:157 templates/js/table_filters.html:138 +msgid "Component" +msgstr "" + +#: part/templates/part/detail.html:160 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/detail.html:162 +msgid "Part cannot be used in assemblies" +msgstr "" + +#: part/templates/part/detail.html:166 templates/js/table_filters.html:150 +msgid "Trackable" +msgstr "" + +#: part/templates/part/detail.html:169 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/detail.html:155 +#: part/templates/part/detail.html:171 msgid "Part stock is not tracked by serial number" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:175 msgid "Purchaseable" msgstr "" -#: part/templates/part/detail.html:162 part/templates/part/detail.html:164 +#: part/templates/part/detail.html:178 part/templates/part/detail.html:180 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/detail.html:168 templates/table_filters.html:111 +#: part/templates/part/detail.html:184 templates/js/table_filters.html:146 msgid "Salable" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/detail.html:173 +#: part/templates/part/detail.html:189 msgid "Part cannot be sold to customers" msgstr "" +#: part/templates/part/detail.html:193 templates/js/table_filters.html:117 +msgid "Active" +msgstr "" + +#: part/templates/part/detail.html:196 +msgid "Part is active" +msgstr "" + +#: part/templates/part/detail.html:198 +msgid "Part is not active" +msgstr "" + #: part/templates/part/notes.html:13 part/templates/part/notes.html:29 msgid "Part Notes" msgstr "" @@ -2197,11 +2298,8 @@ msgstr "" msgid "New Parameter" msgstr "" -#: part/templates/part/params.html:20 -msgid "Name" -msgstr "" - -#: part/templates/part/params.html:21 +#: part/templates/part/params.html:21 stock/models.py:1252 +#: templates/js/stock.html:109 msgid "Value" msgstr "" @@ -2222,54 +2320,62 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:11 +msgid "This part is a virtual part" +msgstr "" + +#: part/templates/part/part_base.html:16 msgid "This part is a template part." msgstr "" -#: part/templates/part/part_base.html:13 -msgid "It is not a real part, but real parts can be based on this template." -msgstr "" - -#: part/templates/part/part_base.html:18 +#: part/templates/part/part_base.html:21 msgid "This part is a variant of" msgstr "" -#: part/templates/part/part_base.html:30 templates/js/company.html:125 -#: templates/js/part.html:158 +#: part/templates/part/part_base.html:33 templates/js/company.html:125 +#: templates/js/part.html:167 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:38 +#: part/templates/part/part_base.html:41 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:44 +#: part/templates/part/part_base.html:47 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:104 msgid "Available Stock" msgstr "" -#: part/templates/part/part_base.html:107 +#: part/templates/part/part_base.html:110 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:114 +#: part/templates/part/part_base.html:117 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:124 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:143 +#: part/templates/part/part_base.html:146 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:149 +#: part/templates/part/part_base.html:152 msgid "Underway" msgstr "" +#: part/templates/part/part_tests.html:8 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/part_tests.html:14 +msgid "Add Test Template" +msgstr "" + #: part/templates/part/part_thumb.html:16 msgid "Select from existing images" msgstr "" @@ -2303,7 +2409,7 @@ msgid "Create New Part" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.html:203 -#: templates/js/part.html:218 +#: templates/js/part.html:227 msgid "No Stock" msgstr "" @@ -2335,18 +2441,22 @@ msgstr "" msgid "Variants" msgstr "" -#: part/templates/part/tabs.html:26 +#: part/templates/part/tabs.html:28 msgid "BOM" msgstr "" -#: part/templates/part/tabs.html:32 +#: part/templates/part/tabs.html:34 msgid "Used In" msgstr "" -#: part/templates/part/tabs.html:53 stock/templates/stock/tabs.html:5 +#: part/templates/part/tabs.html:57 stock/templates/stock/tabs.html:6 msgid "Tracking" msgstr "" +#: part/templates/part/tabs.html:64 stock/templates/stock/item_base.html:259 +msgid "Tests" +msgstr "" + #: part/templates/part/track.html:8 msgid "Part Tracking" msgstr "" @@ -2359,164 +2469,180 @@ msgstr "" msgid "INACTIVE" msgstr "" -#: part/views.py:74 +#: part/views.py:75 msgid "Add part attachment" msgstr "" -#: part/views.py:122 +#: part/views.py:124 templates/attachment_table.html:30 +msgid "Edit attachment" +msgstr "" + +#: part/views.py:128 msgid "Part attachment updated" msgstr "" -#: part/views.py:137 +#: part/views.py:143 msgid "Delete Part Attachment" msgstr "" -#: part/views.py:143 +#: part/views.py:149 msgid "Deleted part attachment" msgstr "" -#: part/views.py:151 -msgid "Set Part Category" +#: part/views.py:158 +msgid "Create Test Template" +msgstr "" + +#: part/views.py:185 +msgid "Edit Test Template" msgstr "" #: part/views.py:199 +msgid "Delete Test Template" +msgstr "" + +#: part/views.py:206 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:254 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:234 +#: part/views.py:289 msgid "Create Variant" msgstr "" -#: part/views.py:304 +#: part/views.py:358 msgid "Duplicate Part" msgstr "" -#: part/views.py:309 +#: part/views.py:363 msgid "Copied part" msgstr "" -#: part/views.py:420 +#: part/views.py:474 msgid "Create new part" msgstr "" -#: part/views.py:425 +#: part/views.py:479 msgid "Created new part" msgstr "" -#: part/views.py:599 +#: part/views.py:653 msgid "Part QR Code" msgstr "" -#: part/views.py:616 +#: part/views.py:670 msgid "Upload Part Image" msgstr "" -#: part/views.py:621 part/views.py:656 +#: part/views.py:675 part/views.py:710 msgid "Updated part image" msgstr "" -#: part/views.py:630 +#: part/views.py:684 msgid "Select Part Image" msgstr "" -#: part/views.py:659 +#: part/views.py:713 msgid "Part image not found" msgstr "" -#: part/views.py:670 +#: part/views.py:724 msgid "Edit Part Properties" msgstr "" -#: part/views.py:692 +#: part/views.py:746 msgid "Validate BOM" msgstr "" -#: part/views.py:854 +#: part/views.py:908 msgid "No BOM file provided" msgstr "" -#: part/views.py:1115 +#: part/views.py:1169 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1139 part/views.py:1142 +#: part/views.py:1193 part/views.py:1196 msgid "Select valid part" msgstr "" -#: part/views.py:1148 +#: part/views.py:1202 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1176 +#: part/views.py:1230 msgid "Select a part" msgstr "" -#: part/views.py:1180 +#: part/views.py:1234 msgid "Specify quantity" msgstr "" -#: part/views.py:1396 +#: part/views.py:1450 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1403 +#: part/views.py:1457 msgid "Part was deleted" msgstr "" -#: part/views.py:1412 +#: part/views.py:1466 msgid "Part Pricing" msgstr "" -#: part/views.py:1534 +#: part/views.py:1588 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1542 +#: part/views.py:1596 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1549 +#: part/views.py:1603 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1557 +#: part/views.py:1611 msgid "Create Part Parameter" msgstr "" -#: part/views.py:1607 +#: part/views.py:1661 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:1621 +#: part/views.py:1675 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:1637 +#: part/views.py:1691 msgid "Edit Part Category" msgstr "" -#: part/views.py:1672 +#: part/views.py:1726 msgid "Delete Part Category" msgstr "" -#: part/views.py:1678 +#: part/views.py:1732 msgid "Part category was deleted" msgstr "" -#: part/views.py:1686 +#: part/views.py:1740 msgid "Create new part category" msgstr "" -#: part/views.py:1737 +#: part/views.py:1791 msgid "Create BOM item" msgstr "" -#: part/views.py:1803 +#: part/views.py:1857 msgid "Edit BOM item" msgstr "" -#: part/views.py:1851 +#: part/views.py:1905 msgid "Confim BOM item deletion" msgstr "" @@ -2536,228 +2662,354 @@ msgstr "" msgid "No matching data" msgstr "" -#: stock/forms.py:93 +#: report/models.py:167 +msgid "Template name" +msgstr "" + +#: report/models.py:173 +msgid "Report template file" +msgstr "" + +#: report/models.py:177 +msgid "Report template description" +msgstr "" + +#: report/models.py:221 +msgid "Part query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:266 +msgid "Report asset file" +msgstr "" + +#: report/models.py:269 +msgid "Asset file description" +msgstr "" + +#: stock/forms.py:194 +msgid "Select test report template" +msgstr "" + +#: stock/forms.py:202 msgid "Include stock items in sub locations" msgstr "" -#: stock/forms.py:126 +#: stock/forms.py:235 msgid "Destination stock location" msgstr "" -#: stock/forms.py:132 +#: stock/forms.py:241 msgid "Confirm movement of stock items" msgstr "" -#: stock/forms.py:134 +#: stock/forms.py:243 msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:217 -#, python-brace-format -msgid "" -"A stock item with this serial number already exists for template part {part}" +#: stock/models.py:208 +msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:222 -msgid "A stock item with this serial number already exists" -msgstr "" - -#: stock/models.py:253 +#: stock/models.py:250 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:263 stock/models.py:272 +#: stock/models.py:260 stock/models.py:269 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:264 +#: stock/models.py:261 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:280 -msgid "Stock item cannot be created for a template Part" -msgstr "" - -#: stock/models.py:289 +#: stock/models.py:282 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:326 +#: stock/models.py:314 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:334 stock/templates/stock/item_base.html:108 +#: stock/models.py:322 stock/templates/stock/item_base.html:129 msgid "Base Part" msgstr "" -#: stock/models.py:335 +#: stock/models.py:323 msgid "Base part" msgstr "" -#: stock/models.py:345 +#: stock/models.py:332 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:350 stock/templates/stock/stock_app_base.html:7 +#: stock/models.py:337 stock/templates/stock/stock_app_base.html:7 msgid "Stock Location" msgstr "" -#: stock/models.py:353 +#: stock/models.py:340 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:358 +#: stock/models.py:345 msgid "Installed In" msgstr "" -#: stock/models.py:361 +#: stock/models.py:348 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:367 +#: stock/models.py:364 msgid "Serial number for this item" msgstr "" -#: stock/models.py:379 +#: stock/models.py:376 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:383 +#: stock/models.py:380 msgid "Stock Quantity" msgstr "" -#: stock/models.py:392 +#: stock/models.py:389 msgid "Source Build" msgstr "" -#: stock/models.py:394 +#: stock/models.py:391 msgid "Build for this stock item" msgstr "" -#: stock/models.py:401 +#: stock/models.py:398 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:404 +#: stock/models.py:401 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:410 +#: stock/models.py:407 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:417 +#: stock/models.py:414 msgid "Destination Build Order" msgstr "" -#: stock/models.py:430 +#: stock/models.py:427 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:440 stock/templates/stock/item_notes.html:13 -#: stock/templates/stock/item_notes.html:29 +#: stock/models.py:437 stock/templates/stock/item_notes.html:14 +#: stock/templates/stock/item_notes.html:30 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:489 +msgid "Assigned to Customer" +msgstr "" + +#: stock/models.py:491 +msgid "Manually assigned to customer" +msgstr "" + +#: stock/models.py:656 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:662 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:610 +#: stock/models.py:668 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:613 stock/models.py:616 +#: stock/models.py:671 stock/models.py:674 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:619 +#: stock/models.py:677 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:629 +#: stock/models.py:687 msgid "Serial numbers already exist: " msgstr "" -#: stock/models.py:651 +#: stock/models.py:712 msgid "Add serial number" msgstr "" -#: stock/models.py:654 +#: stock/models.py:715 #, python-brace-format msgid "Serialized {n} items" msgstr "" -#: stock/models.py:751 +#: stock/models.py:826 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1153 msgid "Tracking entry title" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1155 msgid "Entry notes" msgstr "" -#: stock/models.py:964 +#: stock/models.py:1157 msgid "Link to external page for further information" msgstr "" -#: stock/templates/stock/item.html:12 +#: stock/models.py:1217 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:1223 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:1240 +msgid "Test" +msgstr "" + +#: stock/models.py:1241 +msgid "Test name" +msgstr "" + +#: stock/models.py:1246 +msgid "Result" +msgstr "" + +#: stock/models.py:1247 templates/js/table_filters.html:53 +msgid "Test result" +msgstr "" + +#: stock/models.py:1253 +msgid "Test output value" +msgstr "" + +#: stock/models.py:1259 +msgid "Attachment" +msgstr "" + +#: stock/models.py:1260 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:1266 +msgid "Test notes" +msgstr "" + +#: stock/templates/stock/item.html:11 msgid "Stock Tracking Information" msgstr "" +#: stock/templates/stock/item_attachments.html:10 +msgid "Stock Item Attachments" +msgstr "" + #: stock/templates/stock/item_base.html:20 -msgid "This stock item is allocated to Sales Order" +msgid "This stock item has not passed all required tests" msgstr "" #: stock/templates/stock/item_base.html:26 -msgid "This stock item is allocated to Build" +msgid "This stock item is allocated to Sales Order" msgstr "" #: stock/templates/stock/item_base.html:32 +msgid "This stock item is allocated to Build" +msgstr "" + +#: stock/templates/stock/item_base.html:38 msgid "" "This stock item is serialized - it has a unique serial number and the " "quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:36 +#: stock/templates/stock/item_base.html:42 msgid "This stock item cannot be deleted as it has child items" msgstr "" -#: stock/templates/stock/item_base.html:40 +#: stock/templates/stock/item_base.html:46 msgid "" "This stock item will be automatically deleted when all stock is depleted." msgstr "" -#: stock/templates/stock/item_base.html:103 +#: stock/templates/stock/item_base.html:74 +msgid "Add to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:77 +msgid "Take from stock" +msgstr "" + +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:14 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:84 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:90 stock/views.py:232 +msgid "Assign to Customer" +msgstr "" + +#: stock/templates/stock/item_base.html:94 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:97 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:102 +msgid "Convert stock to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:107 +msgid "Generate test report" +msgstr "" + +#: stock/templates/stock/item_base.html:111 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:115 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:124 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:144 msgid "Belongs To" msgstr "" -#: stock/templates/stock/item_base.html:141 +#: stock/templates/stock/item_base.html:166 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:173 msgid "Unique Identifier" msgstr "" -#: stock/templates/stock/item_base.html:182 +#: stock/templates/stock/item_base.html:214 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:239 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:244 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:248 msgid "No stocktake performed" msgstr "" @@ -2769,6 +3021,22 @@ msgstr "" msgid "This stock item does not have any child items" msgstr "" +#: stock/templates/stock/item_tests.html:10 stock/templates/stock/tabs.html:13 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item_tests.html:17 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item_tests.html:19 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item_tests.html:21 +msgid "Test Report" +msgstr "" + #: stock/templates/stock/location.html:13 msgid "All stock items" msgstr "" @@ -2816,154 +3084,210 @@ msgstr "" msgid "Stock Locations" msgstr "" -#: stock/templates/stock/tabs.html:8 -msgid "Children" +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:934 +msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/tabs.html:13 +#: stock/templates/stock/stockitem_convert.html:8 +msgid "This stock item is current an instance of " +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tabs.html:21 msgid "Builds" msgstr "" -#: stock/views.py:117 +#: stock/templates/stock/tabs.html:38 +msgid "Children" +msgstr "" + +#: stock/views.py:113 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:141 +#: stock/views.py:137 msgid "Stock Location QR code" msgstr "" -#: stock/views.py:156 +#: stock/views.py:155 +msgid "Add Stock Item Attachment" +msgstr "" + +#: stock/views.py:200 +msgid "Edit Stock Item Attachment" +msgstr "" + +#: stock/views.py:216 +msgid "Delete Stock Item Attachment" +msgstr "" + +#: stock/views.py:270 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:285 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:305 +msgid "Add Test Result" +msgstr "" + +#: stock/views.py:342 +msgid "Edit Test Result" +msgstr "" + +#: stock/views.py:359 +msgid "Delete Test Result" +msgstr "" + +#: stock/views.py:370 +msgid "Select Test Report Template" +msgstr "" + +#: stock/views.py:384 +msgid "Select valid template" +msgstr "" + +#: stock/views.py:436 msgid "Stock Export Options" msgstr "" -#: stock/views.py:276 +#: stock/views.py:556 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:299 +#: stock/views.py:579 msgid "Adjust Stock" msgstr "" -#: stock/views.py:408 +#: stock/views.py:688 msgid "Move Stock Items" msgstr "" -#: stock/views.py:409 +#: stock/views.py:689 msgid "Count Stock Items" msgstr "" -#: stock/views.py:410 +#: stock/views.py:690 msgid "Remove From Stock" msgstr "" -#: stock/views.py:411 +#: stock/views.py:691 msgid "Add Stock Items" msgstr "" -#: stock/views.py:412 +#: stock/views.py:692 msgid "Delete Stock Items" msgstr "" -#: stock/views.py:440 +#: stock/views.py:720 msgid "Must enter integer value" msgstr "" -#: stock/views.py:445 +#: stock/views.py:725 msgid "Quantity must be positive" msgstr "" -#: stock/views.py:452 +#: stock/views.py:732 #, python-brace-format msgid "Quantity must not exceed {x}" msgstr "" -#: stock/views.py:460 +#: stock/views.py:740 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:531 +#: stock/views.py:811 #, python-brace-format msgid "Added stock to {n} items" msgstr "" -#: stock/views.py:546 +#: stock/views.py:826 #, python-brace-format msgid "Removed stock from {n} items" msgstr "" -#: stock/views.py:559 +#: stock/views.py:839 #, python-brace-format msgid "Counted stock for {n} items" msgstr "" -#: stock/views.py:587 +#: stock/views.py:867 msgid "No items were moved" msgstr "" -#: stock/views.py:590 +#: stock/views.py:870 #, python-brace-format msgid "Moved {n} items to {dest}" msgstr "" -#: stock/views.py:609 +#: stock/views.py:889 #, python-brace-format msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:621 +#: stock/views.py:901 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:657 +#: stock/views.py:961 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:678 +#: stock/views.py:982 msgid "Serialize Stock" msgstr "" -#: stock/views.py:758 +#: stock/views.py:1074 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:822 +#: stock/views.py:1167 msgid "Copy Stock Item" msgstr "" -#: stock/views.py:893 +#: stock/views.py:1240 msgid "Invalid quantity" msgstr "" -#: stock/views.py:896 +#: stock/views.py:1247 msgid "Invalid part selection" msgstr "" -#: stock/views.py:943 +#: stock/views.py:1296 #, python-brace-format msgid "Created {n} new stock items" msgstr "" -#: stock/views.py:960 stock/views.py:973 +#: stock/views.py:1315 stock/views.py:1331 msgid "Created new stock item" msgstr "" -#: stock/views.py:990 +#: stock/views.py:1350 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1003 +#: stock/views.py:1363 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1014 +#: stock/views.py:1374 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1031 +#: stock/views.py:1391 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1040 +#: stock/views.py:1400 msgid "Add Stock Tracking Entry" msgstr "" @@ -2975,6 +3299,10 @@ msgstr "" msgid "No results found" msgstr "" +#: templates/InvenTree/settings/part.html:9 +msgid "Part Parameter Templates" +msgstr "" + #: templates/InvenTree/settings/part.html:28 msgid "No part parameter templates found" msgstr "" @@ -3027,6 +3355,26 @@ msgstr "" msgid "Submit Bug Report" msgstr "" +#: templates/attachment_table.html:5 +msgid "Add Attachment" +msgstr "" + +#: templates/attachment_table.html:13 +msgid "File" +msgstr "" + +#: templates/attachment_table.html:14 +msgid "Comment" +msgstr "" + +#: templates/attachment_table.html:15 +msgid "Uploaded" +msgstr "" + +#: templates/attachment_table.html:33 +msgid "Delete attachment" +msgstr "" + #: templates/js/bom.html:143 msgid "Open subassembly" msgstr "" @@ -3071,11 +3419,11 @@ msgstr "" msgid "No supplier parts found" msgstr "" -#: templates/js/company.html:117 templates/js/part.html:136 +#: templates/js/company.html:117 templates/js/part.html:145 msgid "Template part" msgstr "" -#: templates/js/company.html:121 templates/js/part.html:140 +#: templates/js/company.html:121 templates/js/part.html:149 msgid "Assembled part" msgstr "" @@ -3087,7 +3435,7 @@ msgstr "" msgid "No purchase orders found" msgstr "" -#: templates/js/order.html:170 templates/js/stock.html:389 +#: templates/js/order.html:170 templates/js/stock.html:605 msgid "Date" msgstr "" @@ -3099,56 +3447,184 @@ msgstr "" msgid "Shipment Date" msgstr "" -#: templates/js/part.html:104 templates/js/stock.html:196 +#: templates/js/part.html:106 templates/js/stock.html:403 msgid "Select" msgstr "" -#: templates/js/part.html:144 +#: templates/js/part.html:153 msgid "Starred part" msgstr "" -#: templates/js/part.html:148 +#: templates/js/part.html:157 msgid "Salable part" msgstr "" -#: templates/js/part.html:187 +#: templates/js/part.html:196 msgid "No category" msgstr "" -#: templates/js/part.html:205 templates/table_filters.html:95 +#: templates/js/part.html:214 templates/js/table_filters.html:130 msgid "Low stock" msgstr "" -#: templates/js/part.html:214 +#: templates/js/part.html:223 msgid "Building" msgstr "" -#: templates/js/part.html:232 +#: templates/js/part.html:241 msgid "No parts found" msgstr "" -#: templates/js/stock.html:66 +#: templates/js/part.html:301 +msgid "YES" +msgstr "" + +#: templates/js/part.html:303 +msgid "NO" +msgstr "" + +#: templates/js/part.html:337 +msgid "No test templates matching query" +msgstr "" + +#: templates/js/part.html:387 templates/js/stock.html:62 +msgid "Edit test result" +msgstr "" + +#: templates/js/part.html:388 templates/js/stock.html:63 +msgid "Delete test result" +msgstr "" + +#: templates/js/part.html:394 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/stock.html:25 +msgid "PASS" +msgstr "" + +#: templates/js/stock.html:27 +msgid "FAIL" +msgstr "" + +#: templates/js/stock.html:32 +msgid "NO RESULT" +msgstr "" + +#: templates/js/stock.html:58 +msgid "Add test result" +msgstr "" + +#: templates/js/stock.html:76 +msgid "No test results found" +msgstr "" + +#: templates/js/stock.html:117 +msgid "Test Date" +msgstr "" + +#: templates/js/stock.html:258 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.html:251 +#: templates/js/stock.html:355 templates/js/stock.html:370 +msgid "Undefined location" +msgstr "" + +#: templates/js/stock.html:467 msgid "StockItem has been allocated" msgstr "" -#: templates/js/stock.html:256 +#: templates/js/stock.html:472 msgid "StockItem is lost" msgstr "" -#: templates/js/stock.html:284 +#: templates/js/stock.html:500 msgid "No stock location set" msgstr "" -#: templates/js/stock.html:446 -msgid "User" +#: templates/js/stock.html:671 +msgid "No user information" msgstr "" -#: templates/js/stock.html:455 -msgid "No user information" +#: templates/js/table_filters.html:19 +msgid "Include sublocations" +msgstr "" + +#: templates/js/table_filters.html:20 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/table_filters.html:24 +msgid "Active parts" +msgstr "" + +#: templates/js/table_filters.html:25 +msgid "Show stock for active parts" +msgstr "" + +#: templates/js/table_filters.html:29 templates/js/table_filters.html:30 +msgid "Stock status" +msgstr "" + +#: templates/js/table_filters.html:34 +msgid "Is allocated" +msgstr "" + +#: templates/js/table_filters.html:35 +msgid "Item has been alloacted" +msgstr "" + +#: templates/js/table_filters.html:38 +msgid "Serial number GTE" +msgstr "" + +#: templates/js/table_filters.html:39 +msgid "Serial number greater than or equal to" +msgstr "" + +#: templates/js/table_filters.html:42 +msgid "Serial number LTE" +msgstr "" + +#: templates/js/table_filters.html:43 +msgid "Serial number less than or equal to" +msgstr "" + +#: templates/js/table_filters.html:72 +msgid "Build status" +msgstr "" + +#: templates/js/table_filters.html:84 templates/js/table_filters.html:97 +msgid "Order status" +msgstr "" + +#: templates/js/table_filters.html:89 templates/js/table_filters.html:102 +msgid "Outstanding" +msgstr "" + +#: templates/js/table_filters.html:112 +msgid "Include subcategories" +msgstr "" + +#: templates/js/table_filters.html:113 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/table_filters.html:118 +msgid "Show active parts" +msgstr "" + +#: templates/js/table_filters.html:126 +msgid "Stock available" +msgstr "" + +#: templates/js/table_filters.html:142 +msgid "Starred" +msgstr "" + +#: templates/js/table_filters.html:154 +msgid "Purchasable" msgstr "" #: templates/navbar.html:14 @@ -3195,10 +3671,6 @@ msgstr "" msgid "Remove stock" msgstr "" -#: templates/stock_table.html:14 -msgid "Count stock" -msgstr "" - #: templates/stock_table.html:15 msgid "Move stock" msgstr "" @@ -3210,71 +3682,3 @@ msgstr "" #: templates/stock_table.html:17 msgid "Delete Stock" msgstr "" - -#: templates/table_filters.html:21 -msgid "Include sublocations" -msgstr "" - -#: templates/table_filters.html:22 -msgid "Include stock in sublocations" -msgstr "" - -#: templates/table_filters.html:26 -msgid "Active parts" -msgstr "" - -#: templates/table_filters.html:27 -msgid "Show stock for active parts" -msgstr "" - -#: templates/table_filters.html:31 templates/table_filters.html:32 -msgid "Stock status" -msgstr "" - -#: templates/table_filters.html:36 -msgid "Is allocated" -msgstr "" - -#: templates/table_filters.html:37 -msgid "Item has been alloacted" -msgstr "" - -#: templates/table_filters.html:46 -msgid "Build status" -msgstr "" - -#: templates/table_filters.html:57 templates/table_filters.html:66 -msgid "Order status" -msgstr "" - -#: templates/table_filters.html:77 -msgid "Include subcategories" -msgstr "" - -#: templates/table_filters.html:78 -msgid "Include parts in subcategories" -msgstr "" - -#: templates/table_filters.html:82 -msgid "Active" -msgstr "" - -#: templates/table_filters.html:83 -msgid "Show active parts" -msgstr "" - -#: templates/table_filters.html:87 -msgid "Template" -msgstr "" - -#: templates/table_filters.html:91 -msgid "Stock available" -msgstr "" - -#: templates/table_filters.html:107 -msgid "Starred" -msgstr "" - -#: templates/table_filters.html:115 -msgid "Purchasable" -msgstr "" diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po index 976f7abf2f..fb77271de8 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: 2020-05-04 09:50+0000\n" +"POT-Creation-Date: 2020-06-09 06:17+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,84 +18,112 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: InvenTree/api.py:61 +#: InvenTree/api.py:86 msgid "No action specified" msgstr "" -#: InvenTree/api.py:75 +#: InvenTree/api.py:100 msgid "No matching action found" msgstr "" -#: InvenTree/api.py:106 +#: InvenTree/api.py:131 msgid "No barcode data provided" msgstr "" -#: InvenTree/api.py:121 +#: InvenTree/api.py:146 msgid "Barcode successfully decoded" msgstr "" -#: InvenTree/api.py:124 +#: InvenTree/api.py:149 msgid "Barcode plugin returned incorrect response" msgstr "" -#: InvenTree/api.py:134 +#: InvenTree/api.py:159 msgid "Unknown barcode format" msgstr "" -#: InvenTree/helpers.py:258 order/models.py:150 order/models.py:224 +#: InvenTree/forms.py:101 build/forms.py:37 +msgid "Confirm" +msgstr "" + +#: InvenTree/forms.py:117 +msgid "Confirm item deletion" +msgstr "" + +#: InvenTree/forms.py:149 +msgid "Enter new password" +msgstr "" + +#: InvenTree/forms.py:156 +msgid "Confirm new password" +msgstr "" + +#: InvenTree/helpers.py:328 order/models.py:187 order/models.py:261 msgid "Invalid quantity provided" msgstr "" -#: InvenTree/helpers.py:261 +#: InvenTree/helpers.py:331 msgid "Empty serial number string" msgstr "" -#: InvenTree/helpers.py:282 InvenTree/helpers.py:299 +#: InvenTree/helpers.py:352 InvenTree/helpers.py:369 #, python-brace-format msgid "Duplicate serial: {n}" msgstr "" -#: InvenTree/helpers.py:286 InvenTree/helpers.py:289 InvenTree/helpers.py:292 -#: InvenTree/helpers.py:303 +#: InvenTree/helpers.py:356 InvenTree/helpers.py:359 InvenTree/helpers.py:362 +#: InvenTree/helpers.py:373 #, python-brace-format msgid "Invalid group: {g}" msgstr "" -#: InvenTree/helpers.py:309 +#: InvenTree/helpers.py:379 msgid "No serial numbers found" msgstr "" -#: InvenTree/helpers.py:313 +#: InvenTree/helpers.py:383 #, python-brace-format msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:54 +#: InvenTree/models.py:60 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:56 +#: InvenTree/models.py:62 msgid "File comment" msgstr "" -#: InvenTree/settings.py:295 +#: InvenTree/models.py:68 templates/js/stock.html:662 +msgid "User" +msgstr "" + +#: InvenTree/models.py:106 part/templates/part/params.html:20 +msgid "Name" +msgstr "" + +#: InvenTree/models.py:112 +msgid "Description (optional)" +msgstr "" + +#: InvenTree/settings.py:330 msgid "English" msgstr "" -#: InvenTree/settings.py:296 +#: InvenTree/settings.py:331 msgid "German" msgstr "" -#: InvenTree/settings.py:297 +#: InvenTree/settings.py:332 msgid "French" msgstr "" -#: InvenTree/settings.py:298 +#: InvenTree/settings.py:333 msgid "Polish" msgstr "" #: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135 -#: InvenTree/status_codes.py:230 +#: InvenTree/status_codes.py:235 msgid "Pending" msgstr "" @@ -103,61 +131,61 @@ msgstr "" msgid "Placed" msgstr "" -#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:233 +#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:238 msgid "Complete" msgstr "" #: InvenTree/status_codes.py:97 InvenTree/status_codes.py:137 -#: InvenTree/status_codes.py:232 +#: InvenTree/status_codes.py:237 msgid "Cancelled" msgstr "" #: InvenTree/status_codes.py:98 InvenTree/status_codes.py:138 -#: InvenTree/status_codes.py:174 +#: InvenTree/status_codes.py:179 msgid "Lost" msgstr "" #: InvenTree/status_codes.py:99 InvenTree/status_codes.py:139 -#: InvenTree/status_codes.py:176 +#: InvenTree/status_codes.py:181 msgid "Returned" msgstr "" -#: InvenTree/status_codes.py:136 InvenTree/status_codes.py:177 +#: InvenTree/status_codes.py:136 InvenTree/status_codes.py:182 #: order/templates/order/sales_order_base.html:98 msgid "Shipped" msgstr "" -#: InvenTree/status_codes.py:170 +#: InvenTree/status_codes.py:175 msgid "OK" msgstr "" -#: InvenTree/status_codes.py:171 +#: InvenTree/status_codes.py:176 msgid "Attention needed" msgstr "" -#: InvenTree/status_codes.py:172 +#: InvenTree/status_codes.py:177 msgid "Damaged" msgstr "" -#: InvenTree/status_codes.py:173 +#: InvenTree/status_codes.py:178 msgid "Destroyed" msgstr "" -#: InvenTree/status_codes.py:175 +#: InvenTree/status_codes.py:180 msgid "Rejected" msgstr "" -#: InvenTree/status_codes.py:178 +#: InvenTree/status_codes.py:183 msgid "Used for Build" msgstr "" -#: InvenTree/status_codes.py:179 +#: InvenTree/status_codes.py:184 msgid "Installed in Stock Item" msgstr "" -#: InvenTree/status_codes.py:231 build/templates/build/allocate.html:349 +#: InvenTree/status_codes.py:236 build/templates/build/allocate.html:349 #: order/templates/order/sales_order_detail.html:220 -#: part/templates/part/tabs.html:21 templates/js/build.html:120 +#: part/templates/part/tabs.html:23 templates/js/build.html:120 msgid "Allocated" msgstr "" @@ -186,159 +214,168 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:547 +#: InvenTree/views.py:563 msgid "Database Statistics" msgstr "" -#: build/forms.py:37 -msgid "Confirm" +#: build/forms.py:58 +msgid "Location of completed parts" msgstr "" -#: build/forms.py:54 stock/forms.py:34 +#: build/forms.py:62 +msgid "Serial numbers" +msgstr "" + +#: build/forms.py:64 stock/forms.py:93 msgid "Enter unique serial numbers (or leave blank)" msgstr "" -#: build/forms.py:56 +#: build/forms.py:67 msgid "Confirm build completion" msgstr "" -#: build/models.py:57 build/templates/build/build_base.html:65 +#: build/models.py:67 +msgid "Build quantity must be integer value for trackable parts" +msgstr "" + +#: build/models.py:73 build/templates/build/build_base.html:65 msgid "Build Title" msgstr "" -#: build/models.py:60 +#: build/models.py:76 msgid "Brief description of the build" msgstr "" -#: build/models.py:68 build/templates/build/build_base.html:86 +#: build/models.py:84 build/templates/build/build_base.html:86 msgid "Parent Build" msgstr "" -#: build/models.py:69 +#: build/models.py:85 msgid "Parent build to which this build is allocated" msgstr "" -#: build/models.py:74 build/templates/build/allocate.html:320 +#: build/models.py:90 build/templates/build/allocate.html:320 #: build/templates/build/auto_allocate.html:18 #: build/templates/build/build_base.html:70 -#: build/templates/build/detail.html:22 order/models.py:464 +#: build/templates/build/detail.html:22 order/models.py:501 #: order/templates/order/order_wizard/select_parts.html:30 #: order/templates/order/purchase_order_detail.html:145 -#: order/templates/order/receive_parts.html:19 +#: order/templates/order/receive_parts.html:19 part/models.py:240 #: part/templates/part/part_app_base.html:7 #: part/templates/part/set_category.html:13 templates/js/bom.html:135 #: templates/js/build.html:41 templates/js/company.html:109 -#: templates/js/part.html:111 templates/js/stock.html:206 +#: templates/js/part.html:120 templates/js/stock.html:422 msgid "Part" msgstr "" -#: build/models.py:83 +#: build/models.py:99 msgid "Select part to build" msgstr "" -#: build/models.py:88 +#: build/models.py:104 msgid "Sales Order Reference" msgstr "" -#: build/models.py:92 +#: build/models.py:108 msgid "SalesOrder to which this build is allocated" msgstr "" -#: build/models.py:97 +#: build/models.py:113 msgid "Source Location" msgstr "" -#: build/models.py:101 +#: build/models.py:117 msgid "" "Select location to take stock from for this build (leave blank to take from " "any stock location)" msgstr "" -#: build/models.py:105 +#: build/models.py:121 msgid "Build Quantity" msgstr "" -#: build/models.py:108 +#: build/models.py:124 msgid "Number of parts to build" msgstr "" -#: build/models.py:112 part/templates/part/part_base.html:138 +#: build/models.py:128 part/templates/part/part_base.html:141 msgid "Build Status" msgstr "" -#: build/models.py:116 +#: build/models.py:132 msgid "Build status code" msgstr "" -#: build/models.py:120 stock/models.py:377 +#: build/models.py:136 stock/models.py:374 msgid "Batch Code" msgstr "" -#: build/models.py:124 +#: build/models.py:140 msgid "Batch code for this build output" msgstr "" -#: build/models.py:139 build/templates/build/detail.html:55 +#: build/models.py:155 build/templates/build/detail.html:55 #: company/templates/company/supplier_part_base.html:60 #: company/templates/company/supplier_part_detail.html:24 -#: part/templates/part/detail.html:67 part/templates/part/part_base.html:85 -#: stock/models.py:371 stock/templates/stock/item_base.html:189 +#: part/templates/part/detail.html:74 part/templates/part/part_base.html:88 +#: stock/models.py:368 stock/templates/stock/item_base.html:221 msgid "External Link" msgstr "" -#: build/models.py:140 stock/models.py:373 +#: build/models.py:156 stock/models.py:370 msgid "Link to external URL" msgstr "" -#: build/models.py:144 build/templates/build/tabs.html:14 company/models.py:302 -#: company/templates/company/tabs.html:26 order/templates/order/po_tabs.html:15 +#: build/models.py:160 build/templates/build/tabs.html:14 company/models.py:302 +#: company/templates/company/tabs.html:33 order/templates/order/po_tabs.html:15 #: order/templates/order/purchase_order_detail.html:200 -#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:63 -#: stock/models.py:439 stock/templates/stock/tabs.html:17 -#: templates/js/bom.html:229 templates/js/stock.html:290 +#: order/templates/order/so_tabs.html:23 part/templates/part/tabs.html:73 +#: stock/models.py:436 stock/models.py:1265 stock/templates/stock/tabs.html:26 +#: templates/js/bom.html:229 templates/js/stock.html:113 +#: templates/js/stock.html:506 msgid "Notes" msgstr "" -#: build/models.py:145 +#: build/models.py:161 msgid "Extra build notes" msgstr "" -#: build/models.py:451 +#: build/models.py:467 #, python-brace-format msgid "Selected stock item not found in BOM for part '{p}'" msgstr "" -#: build/models.py:454 +#: build/models.py:470 #, python-brace-format msgid "Allocated quantity ({n}) must not exceed available quantity ({q})" msgstr "" -#: build/models.py:460 order/models.py:548 +#: build/models.py:476 order/models.py:585 msgid "StockItem is over-allocated" msgstr "" -#: build/models.py:463 order/models.py:551 +#: build/models.py:479 order/models.py:588 msgid "Allocation quantity must be greater than zero" msgstr "" -#: build/models.py:466 +#: build/models.py:482 msgid "Quantity must be 1 for serialized stock" msgstr "" -#: build/models.py:496 +#: build/models.py:512 msgid "Build to allocate parts" msgstr "" -#: build/models.py:503 +#: build/models.py:519 msgid "Stock Item to allocate to build" msgstr "" -#: build/models.py:516 +#: build/models.py:532 msgid "Stock quantity to allocate to build" msgstr "" #: build/templates/build/allocate.html:17 -#: company/templates/company/detail_part.html:18 order/views.py:763 +#: company/templates/company/detail_part.html:18 order/views.py:779 msgid "Order Parts" msgstr "" @@ -360,8 +397,8 @@ msgstr "" #: build/templates/build/allocate.html:161 #: order/templates/order/sales_order_detail.html:68 -#: order/templates/order/sales_order_detail.html:150 stock/models.py:365 -#: stock/templates/stock/item_base.html:148 +#: order/templates/order/sales_order_detail.html:150 stock/models.py:362 +#: stock/templates/stock/item_base.html:180 msgid "Serial Number" msgstr "" @@ -376,18 +413,18 @@ msgstr "" #: order/templates/order/sales_order_detail.html:152 #: part/templates/part/allocation.html:16 #: part/templates/part/allocation.html:49 -#: stock/templates/stock/item_base.html:20 #: stock/templates/stock/item_base.html:26 -#: stock/templates/stock/item_base.html:154 +#: stock/templates/stock/item_base.html:32 +#: stock/templates/stock/item_base.html:186 #: stock/templates/stock/stock_adjust.html:18 templates/js/bom.html:172 -#: templates/js/build.html:52 templates/js/stock.html:437 +#: templates/js/build.html:52 templates/js/stock.html:653 msgid "Quantity" msgstr "" #: build/templates/build/allocate.html:177 #: build/templates/build/auto_allocate.html:20 -#: stock/templates/stock/item_base.html:134 -#: stock/templates/stock/stock_adjust.html:17 templates/js/stock.html:277 +#: stock/templates/stock/item_base.html:162 +#: stock/templates/stock/stock_adjust.html:17 templates/js/stock.html:493 msgid "Location" msgstr "" @@ -409,11 +446,11 @@ msgstr "" #: company/templates/company/supplier_part_base.html:53 #: company/templates/company/supplier_part_detail.html:27 #: order/templates/order/purchase_order_detail.html:157 -#: part/templates/part/detail.html:38 part/templates/part/set_category.html:14 +#: part/templates/part/detail.html:45 part/templates/part/set_category.html:14 #: templates/js/bom.html:157 templates/js/company.html:60 #: templates/js/order.html:157 templates/js/order.html:230 -#: templates/js/part.html:167 templates/js/stock.html:227 -#: templates/js/stock.html:418 +#: templates/js/part.html:176 templates/js/part.html:355 +#: templates/js/stock.html:443 templates/js/stock.html:634 msgid "Description" msgstr "" @@ -423,7 +460,8 @@ msgstr "" msgid "Reference" msgstr "" -#: build/templates/build/allocate.html:338 +#: build/templates/build/allocate.html:338 part/models.py:1260 +#: templates/js/part.html:359 templates/js/table_filters.html:63 msgid "Required" msgstr "" @@ -466,7 +504,7 @@ msgstr "" #: build/templates/build/build_base.html:8 #: build/templates/build/build_base.html:34 #: build/templates/build/complete.html:6 -#: stock/templates/stock/item_base.html:168 templates/js/build.html:33 +#: stock/templates/stock/item_base.html:200 templates/js/build.html:33 #: templates/navbar.html:12 msgid "Build" msgstr "" @@ -486,19 +524,19 @@ msgstr "" #: build/templates/build/build_base.html:80 #: build/templates/build/detail.html:42 #: order/templates/order/receive_parts.html:24 -#: stock/templates/stock/item_base.html:221 templates/js/build.html:57 +#: stock/templates/stock/item_base.html:253 templates/js/build.html:57 #: templates/js/order.html:162 templates/js/order.html:235 -#: templates/js/stock.html:264 +#: templates/js/stock.html:480 msgid "Status" msgstr "" -#: build/templates/build/build_base.html:93 order/models.py:462 +#: build/templates/build/build_base.html:93 order/models.py:499 #: order/templates/order/sales_order_base.html:9 #: order/templates/order/sales_order_base.html:33 #: order/templates/order/sales_order_notes.html:10 #: order/templates/order/sales_order_ship.html:25 #: part/templates/part/allocation.html:27 -#: stock/templates/stock/item_base.html:122 templates/js/order.html:209 +#: stock/templates/stock/item_base.html:150 templates/js/order.html:209 msgid "Sales Order" msgstr "" @@ -565,7 +603,7 @@ msgid "Stock can be taken from any available location." msgstr "" #: build/templates/build/detail.html:48 -#: stock/templates/stock/item_base.html:161 templates/js/stock.html:272 +#: stock/templates/stock/item_base.html:193 templates/js/stock.html:488 msgid "Batch" msgstr "" @@ -593,7 +631,7 @@ msgstr "" #: build/templates/build/index.html:6 build/templates/build/index.html:14 #: order/templates/order/so_builds.html:11 order/templates/order/so_tabs.html:9 -#: part/templates/part/tabs.html:28 +#: part/templates/part/tabs.html:30 msgid "Build Orders" msgstr "" @@ -608,14 +646,14 @@ msgstr "" #: build/templates/build/notes.html:20 company/templates/company/notes.html:17 #: order/templates/order/order_notes.html:21 #: order/templates/order/sales_order_notes.html:26 -#: part/templates/part/notes.html:20 stock/templates/stock/item_notes.html:21 +#: part/templates/part/notes.html:20 stock/templates/stock/item_notes.html:22 msgid "Save" msgstr "" #: build/templates/build/notes.html:33 company/templates/company/notes.html:30 #: order/templates/order/order_notes.html:32 #: order/templates/order/sales_order_notes.html:37 -#: part/templates/part/notes.html:32 stock/templates/stock/item_notes.html:32 +#: part/templates/part/notes.html:32 stock/templates/stock/item_notes.html:33 msgid "Edit notes" msgstr "" @@ -660,7 +698,7 @@ msgstr "" msgid "Check the confirmation box at the bottom of the list" msgstr "" -#: build/views.py:148 build/views.py:446 +#: build/views.py:148 build/views.py:456 msgid "Unallocate Stock" msgstr "" @@ -668,7 +706,7 @@ msgstr "" msgid "Confirm unallocation of build stock" msgstr "" -#: build/views.py:162 +#: build/views.py:162 stock/views.py:286 msgid "Check the confirmation box" msgstr "" @@ -676,56 +714,64 @@ msgstr "" msgid "Complete Build" msgstr "" -#: build/views.py:258 +#: build/views.py:201 stock/views.py:1118 stock/views.py:1232 +msgid "Next available serial number is" +msgstr "" + +#: build/views.py:203 +msgid "Next available serial numbers are" +msgstr "" + +#: build/views.py:268 msgid "Confirm completion of build" msgstr "" -#: build/views.py:265 +#: build/views.py:275 msgid "Invalid location selected" msgstr "" -#: build/views.py:290 stock/views.py:917 +#: build/views.py:300 stock/views.py:1268 #, python-brace-format msgid "The following serial numbers already exist: ({sn})" msgstr "" -#: build/views.py:311 +#: build/views.py:321 msgid "Build marked as COMPLETE" msgstr "" -#: build/views.py:387 +#: build/views.py:397 msgid "Start new Build" msgstr "" -#: build/views.py:412 +#: build/views.py:422 msgid "Created new build" msgstr "" -#: build/views.py:422 +#: build/views.py:432 msgid "Edit Build Details" msgstr "" -#: build/views.py:427 +#: build/views.py:437 msgid "Edited build" msgstr "" -#: build/views.py:436 +#: build/views.py:446 msgid "Delete Build" msgstr "" -#: build/views.py:451 +#: build/views.py:461 msgid "Removed parts from build allocation" msgstr "" -#: build/views.py:461 +#: build/views.py:471 msgid "Allocate new Part" msgstr "" -#: build/views.py:614 +#: build/views.py:624 msgid "Edit Stock Allocation" msgstr "" -#: build/views.py:618 +#: build/views.py:628 msgid "Updated Build Item" msgstr "" @@ -857,6 +903,11 @@ msgstr "" msgid "Part packaging" msgstr "" +#: company/templates/company/assigned_stock.html:9 +#: company/templates/company/tabs.html:25 +msgid "Assigned Stock" +msgstr "" + #: company/templates/company/company_base.html:7 #: company/templates/company/company_base.html:22 templates/js/company.html:38 msgid "Company" @@ -896,17 +947,18 @@ msgstr "" #: company/templates/company/detail.html:21 #: company/templates/company/supplier_part_base.html:66 -#: company/templates/company/supplier_part_detail.html:21 order/models.py:111 +#: company/templates/company/supplier_part_detail.html:21 order/models.py:148 #: order/templates/order/order_base.html:74 #: order/templates/order/order_wizard/select_pos.html:30 -#: stock/templates/stock/item_base.html:196 templates/js/company.html:52 +#: stock/templates/stock/item_base.html:228 templates/js/company.html:52 #: templates/js/company.html:134 templates/js/order.html:144 msgid "Supplier" msgstr "" -#: company/templates/company/detail.html:26 order/models.py:277 -#: order/templates/order/sales_order_base.html:73 templates/js/company.html:44 -#: templates/js/order.html:217 +#: company/templates/company/detail.html:26 order/models.py:314 +#: order/templates/order/sales_order_base.html:73 stock/models.py:357 +#: stock/models.py:358 stock/templates/stock/item_base.html:137 +#: templates/js/company.html:44 templates/js/order.html:217 msgid "Customer" msgstr "" @@ -961,7 +1013,7 @@ msgid "Supplier Stock" msgstr "" #: company/templates/company/detail_stock.html:34 -#: company/templates/company/supplier_part_stock.html:38 +#: company/templates/company/supplier_part_stock.html:33 #: part/templates/part/stock.html:54 templates/stock_table.html:5 msgid "Export" msgstr "" @@ -983,7 +1035,7 @@ msgstr "" #: company/templates/company/tabs.html:17 #: order/templates/order/purchase_orders.html:7 #: order/templates/order/purchase_orders.html:12 -#: part/templates/part/orders.html:9 part/templates/part/tabs.html:43 +#: part/templates/part/orders.html:9 part/templates/part/tabs.html:45 #: templates/navbar.html:18 msgid "Purchase Orders" msgstr "" @@ -1002,7 +1054,7 @@ msgstr "" #: company/templates/company/tabs.html:22 #: order/templates/order/sales_orders.html:7 #: order/templates/order/sales_orders.html:12 -#: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:48 +#: part/templates/part/sales_orders.html:9 part/templates/part/tabs.html:50 #: templates/navbar.html:25 msgid "Sales Orders" msgstr "" @@ -1018,8 +1070,8 @@ msgid "New Sales Order" msgstr "" #: company/templates/company/supplier_part_base.html:6 -#: company/templates/company/supplier_part_base.html:19 stock/models.py:344 -#: stock/templates/stock/item_base.html:201 templates/js/company.html:150 +#: company/templates/company/supplier_part_base.html:19 stock/models.py:331 +#: stock/templates/stock/item_base.html:233 templates/js/company.html:150 msgid "Supplier Part" msgstr "" @@ -1099,14 +1151,14 @@ msgstr "" msgid "Supplier Part Stock" msgstr "" -#: company/templates/company/supplier_part_stock.html:61 +#: company/templates/company/supplier_part_stock.html:56 #: order/templates/order/purchase_order_detail.html:38 #: order/templates/order/purchase_order_detail.html:118 #: part/templates/part/stock.html:91 msgid "New Location" msgstr "" -#: company/templates/company/supplier_part_stock.html:62 +#: company/templates/company/supplier_part_stock.html:57 #: part/templates/part/stock.html:92 msgid "Create New Location" msgstr "" @@ -1116,9 +1168,9 @@ msgid "Pricing" msgstr "" #: company/templates/company/supplier_part_tabs.html:8 -#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:17 -#: stock/templates/stock/location.html:12 templates/js/part.html:194 -#: templates/js/stock.html:235 templates/navbar.html:11 +#: company/templates/company/tabs.html:12 part/templates/part/tabs.html:18 +#: stock/templates/stock/location.html:12 templates/js/part.html:203 +#: templates/js/stock.html:451 templates/navbar.html:11 msgid "Stock" msgstr "" @@ -1127,13 +1179,13 @@ msgid "Orders" msgstr "" #: company/templates/company/tabs.html:9 -#: order/templates/order/receive_parts.html:14 +#: order/templates/order/receive_parts.html:14 part/models.py:241 #: part/templates/part/category.html:83 templates/navbar.html:10 #: templates/stats.html:8 templates/stats.html:17 msgid "Parts" msgstr "" -#: company/views.py:50 part/templates/part/tabs.html:37 +#: company/views.py:50 part/templates/part/tabs.html:39 #: templates/navbar.html:16 msgid "Suppliers" msgstr "" @@ -1239,99 +1291,108 @@ msgstr "" msgid "Receive parts to this location" msgstr "" -#: order/models.py:71 +#: order/forms.py:99 +msgid "Enter purchase order number" +msgstr "" + +#: order/forms.py:126 +msgid "Enter sales order number" +msgstr "" + +#: order/models.py:108 msgid "Order reference" msgstr "" -#: order/models.py:73 +#: order/models.py:110 msgid "Order description" msgstr "" -#: order/models.py:75 +#: order/models.py:112 msgid "Link to external page" msgstr "" -#: order/models.py:85 +#: order/models.py:122 msgid "Order notes" msgstr "" -#: order/models.py:114 +#: order/models.py:151 msgid "Supplier order reference code" msgstr "" -#: order/models.py:148 order/models.py:222 part/views.py:1113 -#: stock/models.py:607 +#: order/models.py:185 order/models.py:259 part/views.py:1167 +#: stock/models.py:243 stock/models.py:665 stock/views.py:1243 msgid "Quantity must be greater than zero" msgstr "" -#: order/models.py:153 +#: order/models.py:190 msgid "Part supplier must match PO supplier" msgstr "" -#: order/models.py:217 +#: order/models.py:254 msgid "Lines can only be received against an order marked as 'Placed'" msgstr "" -#: order/models.py:283 +#: order/models.py:320 msgid "Customer order reference code" msgstr "" -#: order/models.py:322 +#: order/models.py:359 msgid "SalesOrder cannot be shipped as it is not currently pending" msgstr "" -#: order/models.py:399 +#: order/models.py:436 msgid "Item quantity" msgstr "" -#: order/models.py:401 +#: order/models.py:438 msgid "Line item reference" msgstr "" -#: order/models.py:403 +#: order/models.py:440 msgid "Line item notes" msgstr "" -#: order/models.py:429 order/templates/order/order_base.html:9 +#: order/models.py:466 order/templates/order/order_base.html:9 #: order/templates/order/order_base.html:23 -#: stock/templates/stock/item_base.html:175 templates/js/order.html:136 +#: stock/templates/stock/item_base.html:207 templates/js/order.html:136 msgid "Purchase Order" msgstr "" -#: order/models.py:442 +#: order/models.py:479 msgid "Supplier part" msgstr "" -#: order/models.py:445 +#: order/models.py:482 msgid "Number of items received" msgstr "" -#: order/models.py:539 +#: order/models.py:576 msgid "Cannot allocate stock item to a line with a different part" msgstr "" -#: order/models.py:541 +#: order/models.py:578 msgid "Cannot allocate stock to a line without a part" msgstr "" -#: order/models.py:544 +#: order/models.py:581 msgid "Allocation quantity cannot exceed stock quantity" msgstr "" -#: order/models.py:554 +#: order/models.py:591 msgid "Quantity must be 1 for serialized stock item" msgstr "" -#: order/models.py:571 +#: order/models.py:608 msgid "Select stock item to allocate" msgstr "" -#: order/models.py:574 +#: order/models.py:611 msgid "Enter stock allocation quantity" msgstr "" #: order/templates/order/delete_attachment.html:5 -#: part/templates/part/attachment_delete.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 "" @@ -1422,44 +1483,14 @@ msgstr "" msgid "Purchase Order Attachments" msgstr "" -#: order/templates/order/po_attachments.html:17 -#: order/templates/order/so_attachments.html:17 -#: part/templates/part/attachments.html:14 -msgid "Add Attachment" -msgstr "" - -#: order/templates/order/po_attachments.html:24 -#: order/templates/order/so_attachments.html:24 -#: part/templates/part/attachments.html:22 -msgid "File" -msgstr "" - -#: order/templates/order/po_attachments.html:25 -#: order/templates/order/so_attachments.html:25 -#: part/templates/part/attachments.html:23 -msgid "Comment" -msgstr "" - -#: order/templates/order/po_attachments.html:36 -#: order/templates/order/so_attachments.html:36 -#: part/templates/part/attachments.html:34 part/views.py:118 -msgid "Edit attachment" -msgstr "" - -#: order/templates/order/po_attachments.html:39 -#: order/templates/order/so_attachments.html:39 -#: part/templates/part/attachments.html:37 -msgid "Delete attachment" -msgstr "" - #: order/templates/order/po_tabs.html:8 order/templates/order/so_tabs.html:16 -#: part/templates/part/tabs.html:60 +#: part/templates/part/tabs.html:70 stock/templates/stock/tabs.html:32 msgid "Attachments" msgstr "" #: order/templates/order/purchase_order_detail.html:16 -#: order/templates/order/sales_order_detail.html:17 order/views.py:1071 -#: order/views.py:1185 +#: order/templates/order/sales_order_detail.html:17 order/views.py:1087 +#: order/views.py:1201 msgid "Add Line Item" msgstr "" @@ -1508,7 +1539,7 @@ msgid "Select parts to receive against this order" msgstr "" #: order/templates/order/receive_parts.html:21 -#: part/templates/part/part_base.html:128 templates/js/part.html:210 +#: part/templates/part/part_base.html:131 templates/js/part.html:219 msgid "On Order" msgstr "" @@ -1538,6 +1569,7 @@ msgstr "" #: order/templates/order/sales_order_cancel.html:8 #: order/templates/order/sales_order_ship.html:9 +#: stock/templates/stock/stockitem_convert.html:13 msgid "Warning" msgstr "" @@ -1599,143 +1631,143 @@ msgstr "" msgid "Add Purchase Order Attachment" msgstr "" -#: order/views.py:98 order/views.py:138 part/views.py:79 +#: order/views.py:102 order/views.py:149 part/views.py:85 stock/views.py:166 msgid "Added attachment" msgstr "" -#: order/views.py:134 +#: order/views.py:141 msgid "Add Sales Order Attachment" msgstr "" -#: order/views.py:162 order/views.py:183 +#: order/views.py:176 order/views.py:197 msgid "Edit Attachment" msgstr "" -#: order/views.py:166 order/views.py:187 +#: order/views.py:180 order/views.py:201 msgid "Attachment updated" msgstr "" -#: order/views.py:202 order/views.py:216 +#: order/views.py:216 order/views.py:230 msgid "Delete Attachment" msgstr "" -#: order/views.py:208 order/views.py:222 +#: order/views.py:222 order/views.py:236 stock/views.py:222 msgid "Deleted attachment" msgstr "" -#: order/views.py:273 +#: order/views.py:287 msgid "Create Purchase Order" msgstr "" -#: order/views.py:303 +#: order/views.py:318 msgid "Create Sales Order" msgstr "" -#: order/views.py:332 +#: order/views.py:348 msgid "Edit Purchase Order" msgstr "" -#: order/views.py:352 +#: order/views.py:368 msgid "Edit Sales Order" msgstr "" -#: order/views.py:368 +#: order/views.py:384 msgid "Cancel Order" msgstr "" -#: order/views.py:383 order/views.py:415 +#: order/views.py:399 order/views.py:431 msgid "Confirm order cancellation" msgstr "" -#: order/views.py:401 +#: order/views.py:417 msgid "Cancel sales order" msgstr "" -#: order/views.py:421 +#: order/views.py:437 msgid "Could not cancel order" msgstr "" -#: order/views.py:435 +#: order/views.py:451 msgid "Issue Order" msgstr "" -#: order/views.py:450 +#: order/views.py:466 msgid "Confirm order placement" msgstr "" -#: order/views.py:471 +#: order/views.py:487 msgid "Complete Order" msgstr "" -#: order/views.py:506 +#: order/views.py:522 msgid "Ship Order" msgstr "" -#: order/views.py:522 +#: order/views.py:538 msgid "Confirm order shipment" msgstr "" -#: order/views.py:528 +#: order/views.py:544 msgid "Could not ship order" msgstr "" -#: order/views.py:579 +#: order/views.py:595 msgid "Receive Parts" msgstr "" -#: order/views.py:646 +#: order/views.py:662 msgid "Items received" msgstr "" -#: order/views.py:660 +#: order/views.py:676 msgid "No destination set" msgstr "" -#: order/views.py:705 +#: order/views.py:721 msgid "Error converting quantity to number" msgstr "" -#: order/views.py:711 +#: order/views.py:727 msgid "Receive quantity less than zero" msgstr "" -#: order/views.py:717 +#: order/views.py:733 msgid "No lines specified" msgstr "" -#: order/views.py:1091 +#: order/views.py:1107 msgid "Invalid Purchase Order" msgstr "" -#: order/views.py:1099 +#: order/views.py:1115 msgid "Supplier must match for Part and Order" msgstr "" -#: order/views.py:1104 +#: order/views.py:1120 msgid "Invalid SupplierPart selection" msgstr "" -#: order/views.py:1236 order/views.py:1254 +#: order/views.py:1252 order/views.py:1270 msgid "Edit Line Item" msgstr "" -#: order/views.py:1270 order/views.py:1282 +#: order/views.py:1286 order/views.py:1298 msgid "Delete Line Item" msgstr "" -#: order/views.py:1275 order/views.py:1287 +#: order/views.py:1291 order/views.py:1303 msgid "Deleted line item" msgstr "" -#: order/views.py:1296 +#: order/views.py:1312 msgid "Allocate Stock to Order" msgstr "" -#: order/views.py:1365 +#: order/views.py:1381 msgid "Edit Allocation Quantity" msgstr "" -#: order/views.py:1380 +#: order/views.py:1396 msgid "Remove allocation" msgstr "" @@ -1752,215 +1784,255 @@ msgstr "" msgid "Error reading BOM file (incorrect row size)" msgstr "" -#: part/forms.py:37 stock/forms.py:91 +#: part/forms.py:55 stock/forms.py:200 msgid "File Format" msgstr "" -#: part/forms.py:37 stock/forms.py:91 +#: part/forms.py:55 stock/forms.py:200 msgid "Select output file format" msgstr "" -#: part/forms.py:39 +#: part/forms.py:57 msgid "Cascading" msgstr "" -#: part/forms.py:39 +#: part/forms.py:57 msgid "Download cascading / multi-level BOM" msgstr "" -#: part/forms.py:58 +#: part/forms.py:76 msgid "Confirm that the BOM is correct" msgstr "" -#: part/forms.py:70 +#: part/forms.py:88 msgid "Select BOM file to upload" msgstr "" -#: part/forms.py:94 +#: part/forms.py:112 msgid "Select part category" msgstr "" -#: part/forms.py:102 +#: part/forms.py:126 msgid "Perform 'deep copy' which will duplicate all BOM data for this part" msgstr "" -#: part/forms.py:107 +#: part/forms.py:131 msgid "Confirm part creation" msgstr "" -#: part/forms.py:193 +#: part/forms.py:221 msgid "Input quantity for price calculation" msgstr "" -#: part/forms.py:196 +#: part/forms.py:224 msgid "Select currency for price calculation" msgstr "" -#: part/models.py:64 +#: part/models.py:65 msgid "Default location for parts in this category" msgstr "" -#: part/models.py:67 +#: part/models.py:68 msgid "Default keywords for parts in this category" msgstr "" -#: part/models.py:341 +#: part/models.py:427 msgid "Part must be unique for name, IPN and revision" msgstr "" -#: part/models.py:355 -msgid "Part cannot be a template part if it is a variant of another part" -msgstr "" - -#: part/models.py:356 -msgid "Part cannot be a variant of another part if it is already a template" -msgstr "" - -#: part/models.py:360 part/templates/part/detail.html:19 +#: part/models.py:442 part/templates/part/detail.html:19 msgid "Part name" msgstr "" -#: part/models.py:364 +#: part/models.py:446 msgid "Is this part a template part?" msgstr "" -#: part/models.py:373 +#: part/models.py:455 msgid "Is this part a variant of another part?" msgstr "" -#: part/models.py:375 +#: part/models.py:457 msgid "Part description" msgstr "" -#: part/models.py:377 +#: part/models.py:459 msgid "Part keywords to improve visibility in search results" msgstr "" -#: part/models.py:382 +#: part/models.py:464 msgid "Part category" msgstr "" -#: part/models.py:384 +#: part/models.py:466 msgid "Internal Part Number" msgstr "" -#: part/models.py:386 +#: part/models.py:468 msgid "Part revision or version number" msgstr "" -#: part/models.py:388 +#: part/models.py:470 msgid "Link to extenal URL" msgstr "" -#: part/models.py:400 +#: part/models.py:482 msgid "Where is this item normally stored?" msgstr "" -#: part/models.py:444 +#: part/models.py:526 msgid "Default supplier part" msgstr "" -#: part/models.py:447 +#: part/models.py:529 msgid "Minimum allowed stock level" msgstr "" -#: part/models.py:449 +#: part/models.py:531 msgid "Stock keeping units for this part" msgstr "" -#: part/models.py:451 +#: part/models.py:533 msgid "Can this part be built from other parts?" msgstr "" -#: part/models.py:453 +#: part/models.py:535 msgid "Can this part be used to build other parts?" msgstr "" -#: part/models.py:455 +#: part/models.py:537 msgid "Does this part have tracking for unique items?" msgstr "" -#: part/models.py:457 +#: part/models.py:539 msgid "Can this part be purchased from external suppliers?" msgstr "" -#: part/models.py:459 +#: part/models.py:541 msgid "Can this part be sold to customers?" msgstr "" -#: part/models.py:461 +#: part/models.py:543 msgid "Is this part active?" msgstr "" -#: part/models.py:463 +#: part/models.py:545 msgid "Is this a virtual part, such as a software product or license?" msgstr "" -#: part/models.py:465 +#: part/models.py:547 msgid "Part notes - supports Markdown formatting" msgstr "" -#: part/models.py:467 +#: part/models.py:549 msgid "Stored BOM checksum" msgstr "" -#: part/models.py:1069 +#: part/models.py:1212 +msgid "Test templates can only be created for trackable parts" +msgstr "" + +#: part/models.py:1229 +msgid "Test with this name already exists for this part" +msgstr "" + +#: part/models.py:1248 templates/js/part.html:350 templates/js/stock.html:89 +msgid "Test Name" +msgstr "" + +#: part/models.py:1249 +msgid "Enter a name for the test" +msgstr "" + +#: part/models.py:1254 +msgid "Test Description" +msgstr "" + +#: part/models.py:1255 +msgid "Enter description for this test" +msgstr "" + +#: part/models.py:1261 +msgid "Is this test required to pass?" +msgstr "" + +#: part/models.py:1266 templates/js/part.html:367 +msgid "Requires Value" +msgstr "" + +#: part/models.py:1267 +msgid "Does this test require a value when adding a test result?" +msgstr "" + +#: part/models.py:1272 templates/js/part.html:374 +msgid "Requires Attachment" +msgstr "" + +#: part/models.py:1273 +msgid "Does this test require a file attachment when adding a test result?" +msgstr "" + +#: part/models.py:1306 msgid "Parameter template name must be unique" msgstr "" -#: part/models.py:1074 +#: part/models.py:1311 msgid "Parameter Name" msgstr "" -#: part/models.py:1076 +#: part/models.py:1313 msgid "Parameter Units" msgstr "" -#: part/models.py:1102 +#: part/models.py:1339 msgid "Parent Part" msgstr "" -#: part/models.py:1104 +#: part/models.py:1341 msgid "Parameter Template" msgstr "" -#: part/models.py:1106 +#: part/models.py:1343 msgid "Parameter Value" msgstr "" -#: part/models.py:1130 +#: part/models.py:1372 msgid "Select parent part" msgstr "" -#: part/models.py:1139 +#: part/models.py:1380 msgid "Select part to be used in BOM" msgstr "" -#: part/models.py:1146 +#: part/models.py:1386 msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:1149 +#: part/models.py:1389 msgid "Estimated build wastage quantity (absolute or percentage)" msgstr "" -#: part/models.py:1152 +#: part/models.py:1392 msgid "BOM item reference" msgstr "" -#: part/models.py:1155 +#: part/models.py:1395 msgid "BOM item notes" msgstr "" -#: part/models.py:1157 +#: part/models.py:1397 msgid "BOM line checksum" msgstr "" -#: part/models.py:1220 +#: part/models.py:1461 stock/models.py:233 +msgid "Quantity must be integer value for trackable parts" +msgstr "" + +#: part/models.py:1470 msgid "Part cannot be added to its own Bill of Materials" msgstr "" -#: part/models.py:1227 +#: part/models.py:1477 #, python-brace-format msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)" msgstr "" @@ -1979,15 +2051,15 @@ msgstr "" #: part/templates/part/allocation.html:28 #: part/templates/part/allocation.html:45 #: stock/templates/stock/item_base.html:8 -#: stock/templates/stock/item_base.html:52 -#: stock/templates/stock/item_base.html:183 +#: stock/templates/stock/item_base.html:58 +#: stock/templates/stock/item_base.html:215 #: stock/templates/stock/stock_adjust.html:16 templates/js/build.html:106 -#: templates/js/stock.html:407 +#: templates/js/stock.html:623 msgid "Stock Item" msgstr "" #: part/templates/part/allocation.html:20 -#: stock/templates/stock/item_base.html:128 +#: stock/templates/stock/item_base.html:156 msgid "Build Order" msgstr "" @@ -2023,7 +2095,7 @@ msgstr "" msgid "Validate Bill of Materials" msgstr "" -#: part/templates/part/bom.html:46 part/views.py:1358 +#: part/templates/part/bom.html:46 part/views.py:1412 msgid "Export Bill of Materials" msgstr "" @@ -2048,11 +2120,11 @@ msgstr "" msgid "Category Description" msgstr "" -#: part/templates/part/category.html:50 part/templates/part/detail.html:74 +#: part/templates/part/category.html:50 part/templates/part/detail.html:81 msgid "Default Location" msgstr "" -#: part/templates/part/category.html:57 part/templates/part/detail.html:51 +#: part/templates/part/category.html:57 part/templates/part/detail.html:58 msgid "Keywords" msgstr "" @@ -2068,7 +2140,7 @@ msgstr "" msgid "Part Details" msgstr "" -#: part/templates/part/detail.html:25 part/templates/part/part_base.html:78 +#: part/templates/part/detail.html:25 part/templates/part/part_base.html:81 msgid "IPN" msgstr "" @@ -2076,107 +2148,136 @@ msgstr "" msgid "Revision" msgstr "" -#: part/templates/part/detail.html:44 +#: part/templates/part/detail.html:39 +msgid "Next Serial Number" +msgstr "" + +#: part/templates/part/detail.html:51 msgid "Variant Of" msgstr "" -#: part/templates/part/detail.html:57 part/templates/part/set_category.html:15 -#: templates/js/part.html:181 +#: part/templates/part/detail.html:64 part/templates/part/set_category.html:15 +#: templates/js/part.html:190 msgid "Category" msgstr "" -#: part/templates/part/detail.html:81 +#: part/templates/part/detail.html:88 msgid "Default Supplier" msgstr "" -#: part/templates/part/detail.html:89 part/templates/part/params.html:22 +#: part/templates/part/detail.html:96 part/templates/part/params.html:22 msgid "Units" msgstr "" -#: part/templates/part/detail.html:95 +#: part/templates/part/detail.html:102 msgid "Minimum Stock" msgstr "" -#: part/templates/part/detail.html:101 templates/js/order.html:243 +#: part/templates/part/detail.html:108 templates/js/order.html:243 msgid "Creation Date" msgstr "" -#: part/templates/part/detail.html:107 +#: part/templates/part/detail.html:114 msgid "Created By" msgstr "" -#: part/templates/part/detail.html:114 +#: part/templates/part/detail.html:121 msgid "Responsible User" msgstr "" -#: part/templates/part/detail.html:123 +#: part/templates/part/detail.html:130 msgid "Virtual" msgstr "" -#: part/templates/part/detail.html:126 +#: part/templates/part/detail.html:133 msgid "Part is virtual (not a physical part)" msgstr "" -#: part/templates/part/detail.html:128 +#: part/templates/part/detail.html:135 msgid "Part is not a virtual part" msgstr "" -#: part/templates/part/detail.html:132 templates/table_filters.html:99 -msgid "Assembly" +#: part/templates/part/detail.html:139 stock/forms.py:194 +#: templates/js/table_filters.html:122 +msgid "Template" msgstr "" -#: part/templates/part/detail.html:135 -msgid "Part can be assembled from other parts" -msgstr "" - -#: part/templates/part/detail.html:137 -msgid "Part cannot be assembled from other parts" -msgstr "" - -#: part/templates/part/detail.html:141 templates/table_filters.html:103 -msgid "Component" +#: part/templates/part/detail.html:142 +msgid "Part is a template part (variants can be made from this part)" msgstr "" #: part/templates/part/detail.html:144 -msgid "Part can be used in assemblies" +msgid "Part is not a template part" msgstr "" -#: part/templates/part/detail.html:146 -msgid "Part cannot be used in assemblies" +#: part/templates/part/detail.html:148 templates/js/table_filters.html:134 +msgid "Assembly" msgstr "" -#: part/templates/part/detail.html:150 -msgid "Trackable" +#: part/templates/part/detail.html:151 +msgid "Part can be assembled from other parts" msgstr "" #: part/templates/part/detail.html:153 +msgid "Part cannot be assembled from other parts" +msgstr "" + +#: part/templates/part/detail.html:157 templates/js/table_filters.html:138 +msgid "Component" +msgstr "" + +#: part/templates/part/detail.html:160 +msgid "Part can be used in assemblies" +msgstr "" + +#: part/templates/part/detail.html:162 +msgid "Part cannot be used in assemblies" +msgstr "" + +#: part/templates/part/detail.html:166 templates/js/table_filters.html:150 +msgid "Trackable" +msgstr "" + +#: part/templates/part/detail.html:169 msgid "Part stock is tracked by serial number" msgstr "" -#: part/templates/part/detail.html:155 +#: part/templates/part/detail.html:171 msgid "Part stock is not tracked by serial number" msgstr "" -#: part/templates/part/detail.html:159 +#: part/templates/part/detail.html:175 msgid "Purchaseable" msgstr "" -#: part/templates/part/detail.html:162 part/templates/part/detail.html:164 +#: part/templates/part/detail.html:178 part/templates/part/detail.html:180 msgid "Part can be purchased from external suppliers" msgstr "" -#: part/templates/part/detail.html:168 templates/table_filters.html:111 +#: part/templates/part/detail.html:184 templates/js/table_filters.html:146 msgid "Salable" msgstr "" -#: part/templates/part/detail.html:171 +#: part/templates/part/detail.html:187 msgid "Part can be sold to customers" msgstr "" -#: part/templates/part/detail.html:173 +#: part/templates/part/detail.html:189 msgid "Part cannot be sold to customers" msgstr "" +#: part/templates/part/detail.html:193 templates/js/table_filters.html:117 +msgid "Active" +msgstr "" + +#: part/templates/part/detail.html:196 +msgid "Part is active" +msgstr "" + +#: part/templates/part/detail.html:198 +msgid "Part is not active" +msgstr "" + #: part/templates/part/notes.html:13 part/templates/part/notes.html:29 msgid "Part Notes" msgstr "" @@ -2197,11 +2298,8 @@ msgstr "" msgid "New Parameter" msgstr "" -#: part/templates/part/params.html:20 -msgid "Name" -msgstr "" - -#: part/templates/part/params.html:21 +#: part/templates/part/params.html:21 stock/models.py:1252 +#: templates/js/stock.html:109 msgid "Value" msgstr "" @@ -2222,54 +2320,62 @@ msgid "Part List" msgstr "" #: part/templates/part/part_base.html:11 +msgid "This part is a virtual part" +msgstr "" + +#: part/templates/part/part_base.html:16 msgid "This part is a template part." msgstr "" -#: part/templates/part/part_base.html:13 -msgid "It is not a real part, but real parts can be based on this template." -msgstr "" - -#: part/templates/part/part_base.html:18 +#: part/templates/part/part_base.html:21 msgid "This part is a variant of" msgstr "" -#: part/templates/part/part_base.html:30 templates/js/company.html:125 -#: templates/js/part.html:158 +#: part/templates/part/part_base.html:33 templates/js/company.html:125 +#: templates/js/part.html:167 msgid "Inactive" msgstr "" -#: part/templates/part/part_base.html:38 +#: part/templates/part/part_base.html:41 msgid "Star this part" msgstr "" -#: part/templates/part/part_base.html:44 +#: part/templates/part/part_base.html:47 msgid "Show pricing information" msgstr "" -#: part/templates/part/part_base.html:101 +#: part/templates/part/part_base.html:104 msgid "Available Stock" msgstr "" -#: part/templates/part/part_base.html:107 +#: part/templates/part/part_base.html:110 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:114 +#: part/templates/part/part_base.html:117 msgid "Allocated to Build Orders" msgstr "" -#: part/templates/part/part_base.html:121 +#: part/templates/part/part_base.html:124 msgid "Allocated to Sales Orders" msgstr "" -#: part/templates/part/part_base.html:143 +#: part/templates/part/part_base.html:146 msgid "Can Build" msgstr "" -#: part/templates/part/part_base.html:149 +#: part/templates/part/part_base.html:152 msgid "Underway" msgstr "" +#: part/templates/part/part_tests.html:8 +msgid "Part Test Templates" +msgstr "" + +#: part/templates/part/part_tests.html:14 +msgid "Add Test Template" +msgstr "" + #: part/templates/part/part_thumb.html:16 msgid "Select from existing images" msgstr "" @@ -2303,7 +2409,7 @@ msgid "Create New Part" msgstr "" #: part/templates/part/stock_count.html:7 templates/js/bom.html:203 -#: templates/js/part.html:218 +#: templates/js/part.html:227 msgid "No Stock" msgstr "" @@ -2335,18 +2441,22 @@ msgstr "" msgid "Variants" msgstr "" -#: part/templates/part/tabs.html:26 +#: part/templates/part/tabs.html:28 msgid "BOM" msgstr "" -#: part/templates/part/tabs.html:32 +#: part/templates/part/tabs.html:34 msgid "Used In" msgstr "" -#: part/templates/part/tabs.html:53 stock/templates/stock/tabs.html:5 +#: part/templates/part/tabs.html:57 stock/templates/stock/tabs.html:6 msgid "Tracking" msgstr "" +#: part/templates/part/tabs.html:64 stock/templates/stock/item_base.html:259 +msgid "Tests" +msgstr "" + #: part/templates/part/track.html:8 msgid "Part Tracking" msgstr "" @@ -2359,164 +2469,180 @@ msgstr "" msgid "INACTIVE" msgstr "" -#: part/views.py:74 +#: part/views.py:75 msgid "Add part attachment" msgstr "" -#: part/views.py:122 +#: part/views.py:124 templates/attachment_table.html:30 +msgid "Edit attachment" +msgstr "" + +#: part/views.py:128 msgid "Part attachment updated" msgstr "" -#: part/views.py:137 +#: part/views.py:143 msgid "Delete Part Attachment" msgstr "" -#: part/views.py:143 +#: part/views.py:149 msgid "Deleted part attachment" msgstr "" -#: part/views.py:151 -msgid "Set Part Category" +#: part/views.py:158 +msgid "Create Test Template" +msgstr "" + +#: part/views.py:185 +msgid "Edit Test Template" msgstr "" #: part/views.py:199 +msgid "Delete Test Template" +msgstr "" + +#: part/views.py:206 +msgid "Set Part Category" +msgstr "" + +#: part/views.py:254 #, python-brace-format msgid "Set category for {n} parts" msgstr "" -#: part/views.py:234 +#: part/views.py:289 msgid "Create Variant" msgstr "" -#: part/views.py:304 +#: part/views.py:358 msgid "Duplicate Part" msgstr "" -#: part/views.py:309 +#: part/views.py:363 msgid "Copied part" msgstr "" -#: part/views.py:420 +#: part/views.py:474 msgid "Create new part" msgstr "" -#: part/views.py:425 +#: part/views.py:479 msgid "Created new part" msgstr "" -#: part/views.py:599 +#: part/views.py:653 msgid "Part QR Code" msgstr "" -#: part/views.py:616 +#: part/views.py:670 msgid "Upload Part Image" msgstr "" -#: part/views.py:621 part/views.py:656 +#: part/views.py:675 part/views.py:710 msgid "Updated part image" msgstr "" -#: part/views.py:630 +#: part/views.py:684 msgid "Select Part Image" msgstr "" -#: part/views.py:659 +#: part/views.py:713 msgid "Part image not found" msgstr "" -#: part/views.py:670 +#: part/views.py:724 msgid "Edit Part Properties" msgstr "" -#: part/views.py:692 +#: part/views.py:746 msgid "Validate BOM" msgstr "" -#: part/views.py:854 +#: part/views.py:908 msgid "No BOM file provided" msgstr "" -#: part/views.py:1115 +#: part/views.py:1169 msgid "Enter a valid quantity" msgstr "" -#: part/views.py:1139 part/views.py:1142 +#: part/views.py:1193 part/views.py:1196 msgid "Select valid part" msgstr "" -#: part/views.py:1148 +#: part/views.py:1202 msgid "Duplicate part selected" msgstr "" -#: part/views.py:1176 +#: part/views.py:1230 msgid "Select a part" msgstr "" -#: part/views.py:1180 +#: part/views.py:1234 msgid "Specify quantity" msgstr "" -#: part/views.py:1396 +#: part/views.py:1450 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1403 +#: part/views.py:1457 msgid "Part was deleted" msgstr "" -#: part/views.py:1412 +#: part/views.py:1466 msgid "Part Pricing" msgstr "" -#: part/views.py:1534 +#: part/views.py:1588 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1542 +#: part/views.py:1596 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1549 +#: part/views.py:1603 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1557 +#: part/views.py:1611 msgid "Create Part Parameter" msgstr "" -#: part/views.py:1607 +#: part/views.py:1661 msgid "Edit Part Parameter" msgstr "" -#: part/views.py:1621 +#: part/views.py:1675 msgid "Delete Part Parameter" msgstr "" -#: part/views.py:1637 +#: part/views.py:1691 msgid "Edit Part Category" msgstr "" -#: part/views.py:1672 +#: part/views.py:1726 msgid "Delete Part Category" msgstr "" -#: part/views.py:1678 +#: part/views.py:1732 msgid "Part category was deleted" msgstr "" -#: part/views.py:1686 +#: part/views.py:1740 msgid "Create new part category" msgstr "" -#: part/views.py:1737 +#: part/views.py:1791 msgid "Create BOM item" msgstr "" -#: part/views.py:1803 +#: part/views.py:1857 msgid "Edit BOM item" msgstr "" -#: part/views.py:1851 +#: part/views.py:1905 msgid "Confim BOM item deletion" msgstr "" @@ -2536,228 +2662,354 @@ msgstr "" msgid "No matching data" msgstr "" -#: stock/forms.py:93 +#: report/models.py:167 +msgid "Template name" +msgstr "" + +#: report/models.py:173 +msgid "Report template file" +msgstr "" + +#: report/models.py:177 +msgid "Report template description" +msgstr "" + +#: report/models.py:221 +msgid "Part query filters (comma-separated list of key=value pairs)" +msgstr "" + +#: report/models.py:266 +msgid "Report asset file" +msgstr "" + +#: report/models.py:269 +msgid "Asset file description" +msgstr "" + +#: stock/forms.py:194 +msgid "Select test report template" +msgstr "" + +#: stock/forms.py:202 msgid "Include stock items in sub locations" msgstr "" -#: stock/forms.py:126 +#: stock/forms.py:235 msgid "Destination stock location" msgstr "" -#: stock/forms.py:132 +#: stock/forms.py:241 msgid "Confirm movement of stock items" msgstr "" -#: stock/forms.py:134 +#: stock/forms.py:243 msgid "Set the destination as the default location for selected parts" msgstr "" -#: stock/models.py:217 -#, python-brace-format -msgid "" -"A stock item with this serial number already exists for template part {part}" +#: stock/models.py:208 +msgid "StockItem with this serial number already exists" msgstr "" -#: stock/models.py:222 -msgid "A stock item with this serial number already exists" -msgstr "" - -#: stock/models.py:253 +#: stock/models.py:250 #, python-brace-format msgid "Part type ('{pf}') must be {pe}" msgstr "" -#: stock/models.py:263 stock/models.py:272 +#: stock/models.py:260 stock/models.py:269 msgid "Quantity must be 1 for item with a serial number" msgstr "" -#: stock/models.py:264 +#: stock/models.py:261 msgid "Serial number cannot be set if quantity greater than 1" msgstr "" -#: stock/models.py:280 -msgid "Stock item cannot be created for a template Part" -msgstr "" - -#: stock/models.py:289 +#: stock/models.py:282 msgid "Item cannot belong to itself" msgstr "" -#: stock/models.py:326 +#: stock/models.py:314 msgid "Parent Stock Item" msgstr "" -#: stock/models.py:334 stock/templates/stock/item_base.html:108 +#: stock/models.py:322 stock/templates/stock/item_base.html:129 msgid "Base Part" msgstr "" -#: stock/models.py:335 +#: stock/models.py:323 msgid "Base part" msgstr "" -#: stock/models.py:345 +#: stock/models.py:332 msgid "Select a matching supplier part for this stock item" msgstr "" -#: stock/models.py:350 stock/templates/stock/stock_app_base.html:7 +#: stock/models.py:337 stock/templates/stock/stock_app_base.html:7 msgid "Stock Location" msgstr "" -#: stock/models.py:353 +#: stock/models.py:340 msgid "Where is this stock item located?" msgstr "" -#: stock/models.py:358 +#: stock/models.py:345 msgid "Installed In" msgstr "" -#: stock/models.py:361 +#: stock/models.py:348 msgid "Is this item installed in another item?" msgstr "" -#: stock/models.py:367 +#: stock/models.py:364 msgid "Serial number for this item" msgstr "" -#: stock/models.py:379 +#: stock/models.py:376 msgid "Batch code for this stock item" msgstr "" -#: stock/models.py:383 +#: stock/models.py:380 msgid "Stock Quantity" msgstr "" -#: stock/models.py:392 +#: stock/models.py:389 msgid "Source Build" msgstr "" -#: stock/models.py:394 +#: stock/models.py:391 msgid "Build for this stock item" msgstr "" -#: stock/models.py:401 +#: stock/models.py:398 msgid "Source Purchase Order" msgstr "" -#: stock/models.py:404 +#: stock/models.py:401 msgid "Purchase order for this stock item" msgstr "" -#: stock/models.py:410 +#: stock/models.py:407 msgid "Destination Sales Order" msgstr "" -#: stock/models.py:417 +#: stock/models.py:414 msgid "Destination Build Order" msgstr "" -#: stock/models.py:430 +#: stock/models.py:427 msgid "Delete this Stock Item when stock is depleted" msgstr "" -#: stock/models.py:440 stock/templates/stock/item_notes.html:13 -#: stock/templates/stock/item_notes.html:29 +#: stock/models.py:437 stock/templates/stock/item_notes.html:14 +#: stock/templates/stock/item_notes.html:30 msgid "Stock Item Notes" msgstr "" -#: stock/models.py:604 +#: stock/models.py:489 +msgid "Assigned to Customer" +msgstr "" + +#: stock/models.py:491 +msgid "Manually assigned to customer" +msgstr "" + +#: stock/models.py:656 +msgid "Part is not set as trackable" +msgstr "" + +#: stock/models.py:662 msgid "Quantity must be integer" msgstr "" -#: stock/models.py:610 +#: stock/models.py:668 #, python-brace-format msgid "Quantity must not exceed available stock quantity ({n})" msgstr "" -#: stock/models.py:613 stock/models.py:616 +#: stock/models.py:671 stock/models.py:674 msgid "Serial numbers must be a list of integers" msgstr "" -#: stock/models.py:619 +#: stock/models.py:677 msgid "Quantity does not match serial numbers" msgstr "" -#: stock/models.py:629 +#: stock/models.py:687 msgid "Serial numbers already exist: " msgstr "" -#: stock/models.py:651 +#: stock/models.py:712 msgid "Add serial number" msgstr "" -#: stock/models.py:654 +#: stock/models.py:715 #, python-brace-format msgid "Serialized {n} items" msgstr "" -#: stock/models.py:751 +#: stock/models.py:826 msgid "StockItem cannot be moved as it is not in stock" msgstr "" -#: stock/models.py:960 +#: stock/models.py:1153 msgid "Tracking entry title" msgstr "" -#: stock/models.py:962 +#: stock/models.py:1155 msgid "Entry notes" msgstr "" -#: stock/models.py:964 +#: stock/models.py:1157 msgid "Link to external page for further information" msgstr "" -#: stock/templates/stock/item.html:12 +#: stock/models.py:1217 +msgid "Value must be provided for this test" +msgstr "" + +#: stock/models.py:1223 +msgid "Attachment must be uploaded for this test" +msgstr "" + +#: stock/models.py:1240 +msgid "Test" +msgstr "" + +#: stock/models.py:1241 +msgid "Test name" +msgstr "" + +#: stock/models.py:1246 +msgid "Result" +msgstr "" + +#: stock/models.py:1247 templates/js/table_filters.html:53 +msgid "Test result" +msgstr "" + +#: stock/models.py:1253 +msgid "Test output value" +msgstr "" + +#: stock/models.py:1259 +msgid "Attachment" +msgstr "" + +#: stock/models.py:1260 +msgid "Test result attachment" +msgstr "" + +#: stock/models.py:1266 +msgid "Test notes" +msgstr "" + +#: stock/templates/stock/item.html:11 msgid "Stock Tracking Information" msgstr "" +#: stock/templates/stock/item_attachments.html:10 +msgid "Stock Item Attachments" +msgstr "" + #: stock/templates/stock/item_base.html:20 -msgid "This stock item is allocated to Sales Order" +msgid "This stock item has not passed all required tests" msgstr "" #: stock/templates/stock/item_base.html:26 -msgid "This stock item is allocated to Build" +msgid "This stock item is allocated to Sales Order" msgstr "" #: stock/templates/stock/item_base.html:32 +msgid "This stock item is allocated to Build" +msgstr "" + +#: stock/templates/stock/item_base.html:38 msgid "" "This stock item is serialized - it has a unique serial number and the " "quantity cannot be adjusted." msgstr "" -#: stock/templates/stock/item_base.html:36 +#: stock/templates/stock/item_base.html:42 msgid "This stock item cannot be deleted as it has child items" msgstr "" -#: stock/templates/stock/item_base.html:40 +#: stock/templates/stock/item_base.html:46 msgid "" "This stock item will be automatically deleted when all stock is depleted." msgstr "" -#: stock/templates/stock/item_base.html:103 +#: stock/templates/stock/item_base.html:74 +msgid "Add to stock" +msgstr "" + +#: stock/templates/stock/item_base.html:77 +msgid "Take from stock" +msgstr "" + +#: stock/templates/stock/item_base.html:80 templates/stock_table.html:14 +msgid "Count stock" +msgstr "" + +#: stock/templates/stock/item_base.html:84 +msgid "Serialize stock" +msgstr "" + +#: stock/templates/stock/item_base.html:90 stock/views.py:232 +msgid "Assign to Customer" +msgstr "" + +#: stock/templates/stock/item_base.html:94 +msgid "Transfer stock" +msgstr "" + +#: stock/templates/stock/item_base.html:97 +msgid "Duplicate stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:102 +msgid "Convert stock to variant" +msgstr "" + +#: stock/templates/stock/item_base.html:107 +msgid "Generate test report" +msgstr "" + +#: stock/templates/stock/item_base.html:111 +msgid "Edit stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:115 +msgid "Delete stock item" +msgstr "" + +#: stock/templates/stock/item_base.html:124 msgid "Stock Item Details" msgstr "" -#: stock/templates/stock/item_base.html:116 +#: stock/templates/stock/item_base.html:144 msgid "Belongs To" msgstr "" -#: stock/templates/stock/item_base.html:141 +#: stock/templates/stock/item_base.html:166 +msgid "No location set" +msgstr "" + +#: stock/templates/stock/item_base.html:173 msgid "Unique Identifier" msgstr "" -#: stock/templates/stock/item_base.html:182 +#: stock/templates/stock/item_base.html:214 msgid "Parent Item" msgstr "" -#: stock/templates/stock/item_base.html:207 +#: stock/templates/stock/item_base.html:239 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:212 +#: stock/templates/stock/item_base.html:244 msgid "Last Stocktake" msgstr "" -#: stock/templates/stock/item_base.html:216 +#: stock/templates/stock/item_base.html:248 msgid "No stocktake performed" msgstr "" @@ -2769,6 +3021,22 @@ msgstr "" msgid "This stock item does not have any child items" msgstr "" +#: stock/templates/stock/item_tests.html:10 stock/templates/stock/tabs.html:13 +msgid "Test Data" +msgstr "" + +#: stock/templates/stock/item_tests.html:17 +msgid "Delete Test Data" +msgstr "" + +#: stock/templates/stock/item_tests.html:19 +msgid "Add Test Data" +msgstr "" + +#: stock/templates/stock/item_tests.html:21 +msgid "Test Report" +msgstr "" + #: stock/templates/stock/location.html:13 msgid "All stock items" msgstr "" @@ -2816,154 +3084,210 @@ msgstr "" msgid "Stock Locations" msgstr "" -#: stock/templates/stock/tabs.html:8 -msgid "Children" +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:934 +msgid "Convert Stock Item" msgstr "" -#: stock/templates/stock/tabs.html:13 +#: stock/templates/stock/stockitem_convert.html:8 +msgid "This stock item is current an instance of " +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:9 +msgid "It can be converted to one of the part variants listed below." +msgstr "" + +#: stock/templates/stock/stockitem_convert.html:14 +msgid "This action cannot be easily undone" +msgstr "" + +#: stock/templates/stock/tabs.html:21 msgid "Builds" msgstr "" -#: stock/views.py:117 +#: stock/templates/stock/tabs.html:38 +msgid "Children" +msgstr "" + +#: stock/views.py:113 msgid "Edit Stock Location" msgstr "" -#: stock/views.py:141 +#: stock/views.py:137 msgid "Stock Location QR code" msgstr "" -#: stock/views.py:156 +#: stock/views.py:155 +msgid "Add Stock Item Attachment" +msgstr "" + +#: stock/views.py:200 +msgid "Edit Stock Item Attachment" +msgstr "" + +#: stock/views.py:216 +msgid "Delete Stock Item Attachment" +msgstr "" + +#: stock/views.py:270 +msgid "Delete All Test Data" +msgstr "" + +#: stock/views.py:285 +msgid "Confirm test data deletion" +msgstr "" + +#: stock/views.py:305 +msgid "Add Test Result" +msgstr "" + +#: stock/views.py:342 +msgid "Edit Test Result" +msgstr "" + +#: stock/views.py:359 +msgid "Delete Test Result" +msgstr "" + +#: stock/views.py:370 +msgid "Select Test Report Template" +msgstr "" + +#: stock/views.py:384 +msgid "Select valid template" +msgstr "" + +#: stock/views.py:436 msgid "Stock Export Options" msgstr "" -#: stock/views.py:276 +#: stock/views.py:556 msgid "Stock Item QR Code" msgstr "" -#: stock/views.py:299 +#: stock/views.py:579 msgid "Adjust Stock" msgstr "" -#: stock/views.py:408 +#: stock/views.py:688 msgid "Move Stock Items" msgstr "" -#: stock/views.py:409 +#: stock/views.py:689 msgid "Count Stock Items" msgstr "" -#: stock/views.py:410 +#: stock/views.py:690 msgid "Remove From Stock" msgstr "" -#: stock/views.py:411 +#: stock/views.py:691 msgid "Add Stock Items" msgstr "" -#: stock/views.py:412 +#: stock/views.py:692 msgid "Delete Stock Items" msgstr "" -#: stock/views.py:440 +#: stock/views.py:720 msgid "Must enter integer value" msgstr "" -#: stock/views.py:445 +#: stock/views.py:725 msgid "Quantity must be positive" msgstr "" -#: stock/views.py:452 +#: stock/views.py:732 #, python-brace-format msgid "Quantity must not exceed {x}" msgstr "" -#: stock/views.py:460 +#: stock/views.py:740 msgid "Confirm stock adjustment" msgstr "" -#: stock/views.py:531 +#: stock/views.py:811 #, python-brace-format msgid "Added stock to {n} items" msgstr "" -#: stock/views.py:546 +#: stock/views.py:826 #, python-brace-format msgid "Removed stock from {n} items" msgstr "" -#: stock/views.py:559 +#: stock/views.py:839 #, python-brace-format msgid "Counted stock for {n} items" msgstr "" -#: stock/views.py:587 +#: stock/views.py:867 msgid "No items were moved" msgstr "" -#: stock/views.py:590 +#: stock/views.py:870 #, python-brace-format msgid "Moved {n} items to {dest}" msgstr "" -#: stock/views.py:609 +#: stock/views.py:889 #, python-brace-format msgid "Deleted {n} stock items" msgstr "" -#: stock/views.py:621 +#: stock/views.py:901 msgid "Edit Stock Item" msgstr "" -#: stock/views.py:657 +#: stock/views.py:961 msgid "Create new Stock Location" msgstr "" -#: stock/views.py:678 +#: stock/views.py:982 msgid "Serialize Stock" msgstr "" -#: stock/views.py:758 +#: stock/views.py:1074 msgid "Create new Stock Item" msgstr "" -#: stock/views.py:822 +#: stock/views.py:1167 msgid "Copy Stock Item" msgstr "" -#: stock/views.py:893 +#: stock/views.py:1240 msgid "Invalid quantity" msgstr "" -#: stock/views.py:896 +#: stock/views.py:1247 msgid "Invalid part selection" msgstr "" -#: stock/views.py:943 +#: stock/views.py:1296 #, python-brace-format msgid "Created {n} new stock items" msgstr "" -#: stock/views.py:960 stock/views.py:973 +#: stock/views.py:1315 stock/views.py:1331 msgid "Created new stock item" msgstr "" -#: stock/views.py:990 +#: stock/views.py:1350 msgid "Delete Stock Location" msgstr "" -#: stock/views.py:1003 +#: stock/views.py:1363 msgid "Delete Stock Item" msgstr "" -#: stock/views.py:1014 +#: stock/views.py:1374 msgid "Delete Stock Tracking Entry" msgstr "" -#: stock/views.py:1031 +#: stock/views.py:1391 msgid "Edit Stock Tracking Entry" msgstr "" -#: stock/views.py:1040 +#: stock/views.py:1400 msgid "Add Stock Tracking Entry" msgstr "" @@ -2975,6 +3299,10 @@ msgstr "" msgid "No results found" msgstr "" +#: templates/InvenTree/settings/part.html:9 +msgid "Part Parameter Templates" +msgstr "" + #: templates/InvenTree/settings/part.html:28 msgid "No part parameter templates found" msgstr "" @@ -3027,6 +3355,26 @@ msgstr "" msgid "Submit Bug Report" msgstr "" +#: templates/attachment_table.html:5 +msgid "Add Attachment" +msgstr "" + +#: templates/attachment_table.html:13 +msgid "File" +msgstr "" + +#: templates/attachment_table.html:14 +msgid "Comment" +msgstr "" + +#: templates/attachment_table.html:15 +msgid "Uploaded" +msgstr "" + +#: templates/attachment_table.html:33 +msgid "Delete attachment" +msgstr "" + #: templates/js/bom.html:143 msgid "Open subassembly" msgstr "" @@ -3071,11 +3419,11 @@ msgstr "" msgid "No supplier parts found" msgstr "" -#: templates/js/company.html:117 templates/js/part.html:136 +#: templates/js/company.html:117 templates/js/part.html:145 msgid "Template part" msgstr "" -#: templates/js/company.html:121 templates/js/part.html:140 +#: templates/js/company.html:121 templates/js/part.html:149 msgid "Assembled part" msgstr "" @@ -3087,7 +3435,7 @@ msgstr "" msgid "No purchase orders found" msgstr "" -#: templates/js/order.html:170 templates/js/stock.html:389 +#: templates/js/order.html:170 templates/js/stock.html:605 msgid "Date" msgstr "" @@ -3099,56 +3447,184 @@ msgstr "" msgid "Shipment Date" msgstr "" -#: templates/js/part.html:104 templates/js/stock.html:196 +#: templates/js/part.html:106 templates/js/stock.html:403 msgid "Select" msgstr "" -#: templates/js/part.html:144 +#: templates/js/part.html:153 msgid "Starred part" msgstr "" -#: templates/js/part.html:148 +#: templates/js/part.html:157 msgid "Salable part" msgstr "" -#: templates/js/part.html:187 +#: templates/js/part.html:196 msgid "No category" msgstr "" -#: templates/js/part.html:205 templates/table_filters.html:95 +#: templates/js/part.html:214 templates/js/table_filters.html:130 msgid "Low stock" msgstr "" -#: templates/js/part.html:214 +#: templates/js/part.html:223 msgid "Building" msgstr "" -#: templates/js/part.html:232 +#: templates/js/part.html:241 msgid "No parts found" msgstr "" -#: templates/js/stock.html:66 +#: templates/js/part.html:301 +msgid "YES" +msgstr "" + +#: templates/js/part.html:303 +msgid "NO" +msgstr "" + +#: templates/js/part.html:337 +msgid "No test templates matching query" +msgstr "" + +#: templates/js/part.html:387 templates/js/stock.html:62 +msgid "Edit test result" +msgstr "" + +#: templates/js/part.html:388 templates/js/stock.html:63 +msgid "Delete test result" +msgstr "" + +#: templates/js/part.html:394 +msgid "This test is defined for a parent part" +msgstr "" + +#: templates/js/stock.html:25 +msgid "PASS" +msgstr "" + +#: templates/js/stock.html:27 +msgid "FAIL" +msgstr "" + +#: templates/js/stock.html:32 +msgid "NO RESULT" +msgstr "" + +#: templates/js/stock.html:58 +msgid "Add test result" +msgstr "" + +#: templates/js/stock.html:76 +msgid "No test results found" +msgstr "" + +#: templates/js/stock.html:117 +msgid "Test Date" +msgstr "" + +#: templates/js/stock.html:258 msgid "No stock items matching query" msgstr "" -#: templates/js/stock.html:251 +#: templates/js/stock.html:355 templates/js/stock.html:370 +msgid "Undefined location" +msgstr "" + +#: templates/js/stock.html:467 msgid "StockItem has been allocated" msgstr "" -#: templates/js/stock.html:256 +#: templates/js/stock.html:472 msgid "StockItem is lost" msgstr "" -#: templates/js/stock.html:284 +#: templates/js/stock.html:500 msgid "No stock location set" msgstr "" -#: templates/js/stock.html:446 -msgid "User" +#: templates/js/stock.html:671 +msgid "No user information" msgstr "" -#: templates/js/stock.html:455 -msgid "No user information" +#: templates/js/table_filters.html:19 +msgid "Include sublocations" +msgstr "" + +#: templates/js/table_filters.html:20 +msgid "Include stock in sublocations" +msgstr "" + +#: templates/js/table_filters.html:24 +msgid "Active parts" +msgstr "" + +#: templates/js/table_filters.html:25 +msgid "Show stock for active parts" +msgstr "" + +#: templates/js/table_filters.html:29 templates/js/table_filters.html:30 +msgid "Stock status" +msgstr "" + +#: templates/js/table_filters.html:34 +msgid "Is allocated" +msgstr "" + +#: templates/js/table_filters.html:35 +msgid "Item has been alloacted" +msgstr "" + +#: templates/js/table_filters.html:38 +msgid "Serial number GTE" +msgstr "" + +#: templates/js/table_filters.html:39 +msgid "Serial number greater than or equal to" +msgstr "" + +#: templates/js/table_filters.html:42 +msgid "Serial number LTE" +msgstr "" + +#: templates/js/table_filters.html:43 +msgid "Serial number less than or equal to" +msgstr "" + +#: templates/js/table_filters.html:72 +msgid "Build status" +msgstr "" + +#: templates/js/table_filters.html:84 templates/js/table_filters.html:97 +msgid "Order status" +msgstr "" + +#: templates/js/table_filters.html:89 templates/js/table_filters.html:102 +msgid "Outstanding" +msgstr "" + +#: templates/js/table_filters.html:112 +msgid "Include subcategories" +msgstr "" + +#: templates/js/table_filters.html:113 +msgid "Include parts in subcategories" +msgstr "" + +#: templates/js/table_filters.html:118 +msgid "Show active parts" +msgstr "" + +#: templates/js/table_filters.html:126 +msgid "Stock available" +msgstr "" + +#: templates/js/table_filters.html:142 +msgid "Starred" +msgstr "" + +#: templates/js/table_filters.html:154 +msgid "Purchasable" msgstr "" #: templates/navbar.html:14 @@ -3195,10 +3671,6 @@ msgstr "" msgid "Remove stock" msgstr "" -#: templates/stock_table.html:14 -msgid "Count stock" -msgstr "" - #: templates/stock_table.html:15 msgid "Move stock" msgstr "" @@ -3210,71 +3682,3 @@ msgstr "" #: templates/stock_table.html:17 msgid "Delete Stock" msgstr "" - -#: templates/table_filters.html:21 -msgid "Include sublocations" -msgstr "" - -#: templates/table_filters.html:22 -msgid "Include stock in sublocations" -msgstr "" - -#: templates/table_filters.html:26 -msgid "Active parts" -msgstr "" - -#: templates/table_filters.html:27 -msgid "Show stock for active parts" -msgstr "" - -#: templates/table_filters.html:31 templates/table_filters.html:32 -msgid "Stock status" -msgstr "" - -#: templates/table_filters.html:36 -msgid "Is allocated" -msgstr "" - -#: templates/table_filters.html:37 -msgid "Item has been alloacted" -msgstr "" - -#: templates/table_filters.html:46 -msgid "Build status" -msgstr "" - -#: templates/table_filters.html:57 templates/table_filters.html:66 -msgid "Order status" -msgstr "" - -#: templates/table_filters.html:77 -msgid "Include subcategories" -msgstr "" - -#: templates/table_filters.html:78 -msgid "Include parts in subcategories" -msgstr "" - -#: templates/table_filters.html:82 -msgid "Active" -msgstr "" - -#: templates/table_filters.html:83 -msgid "Show active parts" -msgstr "" - -#: templates/table_filters.html:87 -msgid "Template" -msgstr "" - -#: templates/table_filters.html:91 -msgid "Stock available" -msgstr "" - -#: templates/table_filters.html:107 -msgid "Starred" -msgstr "" - -#: templates/table_filters.html:115 -msgid "Purchasable" -msgstr "" diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html index 331b031e91..399da8d2b8 100644 --- a/InvenTree/stock/templates/stock/item_base.html +++ b/InvenTree/stock/templates/stock/item_base.html @@ -112,7 +112,7 @@ InvenTree | {% trans "Stock Item" %} - {{ item }} {% if item.can_delete %} - {% endif %}