diff --git a/InvenTree/locale/de/LC_MESSAGES/django.mo b/InvenTree/locale/de/LC_MESSAGES/django.mo
index 0dd13dedf0..e90eab101b 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 539f42aa8b..d8342de36c 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-21 09:17+0000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: 2021-04-21 10:02\n"
"Last-Translator: \n"
"Language-Team: German\n"
@@ -67,35 +67,36 @@ msgstr "Thema anwenden"
msgid "Select Category"
msgstr "Kategorie auswählen"
-#: InvenTree/helpers.py:375 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr "Keine gültige Menge"
-
-#: InvenTree/helpers.py:378
-msgid "Empty serial number string"
-msgstr "Keine Seriennummer angegeben"
-
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Doppelte Seriennummer: {n}"
-#: InvenTree/helpers.py:403 InvenTree/helpers.py:406 InvenTree/helpers.py:409
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr "Keine gültige Menge"
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr "Keine Seriennummer angegeben"
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ungültige Gruppe: {g}"
-#: InvenTree/helpers.py:414
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Doppelte Seriennummer: {g}"
-#: InvenTree/helpers.py:422
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr "Keine Seriennummern gefunden"
-#: InvenTree/helpers.py:426
+#: InvenTree/helpers.py:457
#, 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"
@@ -140,7 +141,7 @@ msgstr "Name"
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
@@ -165,23 +166,23 @@ msgstr "Beschreibung (optional)"
msgid "parent"
msgstr "Eltern"
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:491
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:492
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:493
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:496
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:497
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr "Türkisch"
@@ -375,16 +376,16 @@ msgstr "Zieldatum"
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1227
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
#: build/templates/build/detail.html:31 common/models.py:703
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
@@ -458,7 +459,7 @@ msgid "Location of completed parts"
msgstr "Lagerort der Endprodukte"
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:445
+#: build/templates/build/detail.html:59 order/models.py:455
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
@@ -508,7 +509,7 @@ msgstr "Bauauftrag"
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr "Bauaufträge"
@@ -516,8 +517,8 @@ msgstr "Bauaufträge"
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:195
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -540,10 +541,10 @@ msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:669
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
#: part/models.py:1876 part/models.py:1888 part/models.py:1906
@@ -628,7 +629,7 @@ msgstr "Losnummer für dieses Endprodukt"
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
@@ -678,9 +679,9 @@ msgstr "Link zu einer externen URL"
#: company/models.py:135 company/models.py:501
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:234
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
@@ -713,47 +714,47 @@ msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
msgid "Completed build output"
msgstr "Endprodukt fertigstellen"
-#: build/models.py:1118
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr "Bauauftrags-Objekt muss für Bauauftrag, Lager-Objekt und installiert_in eindeutig sein"
-#: build/models.py:1143
+#: build/models.py:1157
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1147
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr "Ausgewähltes BestandsObjekt nicht Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1151
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr "Reserviermenge ({n}) muss kleiner Bestandsmenge ({q}) sein. Zugewiesene Anzahl ({n}) darf nicht die verfügbare ({q}) Anzahl überschreiten"
-#: build/models.py:1158 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr "Zu viele BestandsObjekt zugewiesen"
-#: build/models.py:1162 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1166
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1206 stock/templates/stock/item_base.html:306
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1207
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1214 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
@@ -765,19 +766,19 @@ msgstr "Bauauftrag starten um Teile zuzuweisen"
msgid "Stock Item"
msgstr "BestandsObjekt"
-#: build/models.py:1215
+#: build/models.py:1229
msgid "Source stock item"
msgstr "Quell-BestandsObjekt"
-#: build/models.py:1228
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen"
-#: build/models.py:1236
+#: build/models.py:1250
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1237
+#: build/models.py:1251
msgid "Destination stock item"
msgstr "Ziel-BestandsObjekt"
@@ -801,7 +802,7 @@ msgstr "Automatisch zuweisen"
msgid "Unallocate stock"
msgstr "Bestandszuordnung aufheben"
-#: build/templates/build/allocate.html:26 build/views.py:308 build/views.py:794
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
msgstr "Bestandszuordnung aufheben"
@@ -811,7 +812,7 @@ msgstr "Benötigte Teile bestellen"
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:794
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr "Teile bestellen"
@@ -954,7 +955,7 @@ msgid "Progress"
msgstr "Fortschritt"
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1139,7 +1140,7 @@ msgstr "Bauauftrag ist nicht vollständig"
msgid "Alter the quantity of stock allocated to the build output"
msgstr "Anzahl des zugeordneten Bestands für die Endprodukte ändern"
-#: build/templates/build/index.html:28 build/views.py:667
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr "Neuer Bauauftrag"
@@ -1226,141 +1227,145 @@ msgstr "Bestand dem Endprodukt zuweisen"
msgid "Create Build Output"
msgstr "Endprodukt anlegen"
-#: build/views.py:173 stock/models.py:969 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
-#: build/views.py:182
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr "Seriennummern für verfolgbare Endprodukte benötigt"
-#: build/views.py:248
+#: build/views.py:259
msgid "Delete Build Output"
msgstr "Endprodukt entfernen"
-#: build/views.py:269 build/views.py:359
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr "Entfernung von Bestands-Zuordnung bestätigen"
-#: build/views.py:270 build/views.py:360 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr "Bestätigungsbox bestätigen"
-#: build/views.py:282
+#: build/views.py:293
msgid "Build output does not match build"
msgstr "Endprodukt stimmt nicht mit Bauauftrag überein"
-#: build/views.py:284 build/views.py:485
+#: build/views.py:295 build/views.py:496
msgid "Build output must be specified"
msgstr "Endprodukt muss angegeben sein"
-#: build/views.py:296
+#: build/views.py:307
msgid "Build output deleted"
msgstr "Endprodukt gelöscht"
-#: build/views.py:394
+#: build/views.py:405
msgid "Complete Build Order"
msgstr "Bauauftrag fertigstellen"
-#: build/views.py:400
+#: build/views.py:411
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr "Bauauftrag kann nicht abgeschlossen werden, es gibt noch unvollständige Endprodukte"
-#: build/views.py:411
+#: build/views.py:422
msgid "Completed build order"
msgstr "Bauauftrag fertiggestellt"
-#: build/views.py:427
+#: build/views.py:438
msgid "Complete Build Output"
msgstr "Endprodukt fertigstellen"
-#: build/views.py:469
+#: build/views.py:480
msgid "Invalid stock status value selected"
msgstr "Ungültiger Lagerbestands-Status ausgewählt"
-#: build/views.py:476
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr "Fertigzustellende Anzahl darf nicht die geplante Endprodukt-Anzahl überschreiten"
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr "Endprodukt-Fertigstellung bestätigen"
-#: build/views.py:581
+#: build/views.py:592
msgid "Build output completed"
msgstr "Endprodukt fertiggestellt"
-#: build/views.py:721
+#: build/views.py:732
msgid "Created new build"
msgstr "Neuen Bauauftrag angelegt"
-#: build/views.py:742
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr "Bauauftragdetails bearbeiten"
-#: build/views.py:775
+#: build/views.py:786
msgid "Edited build"
msgstr "Bauauftrag bearbeitet"
-#: build/views.py:784
+#: build/views.py:795
msgid "Delete Build Order"
msgstr "Bauauftrag löschen"
-#: build/views.py:799
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr "Teile von Bauzuordnung entfernt"
-#: build/views.py:811
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr "Bestand dem Endprodukt zuweisen"
-#: build/views.py:854
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr "Teil muss aktuell im Bestand sein"
-#: build/views.py:860
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/views.py:861 templates/js/bom.js:230 templates/js/build.js:575
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr "Verfügbar"
-#: build/views.py:863
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr "BestandsObjekt muss ausgewählt sein"
-#: build/views.py:1026
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr "Bestandszuordnung bearbeiten"
-#: build/views.py:1030
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr "Bauobjekt aktualisiert"
-#: build/views.py:1059
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr "Bauauftrags-Anhang hinzufügen"
-#: build/views.py:1072 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr "Anhang hinzugefügt"
-#: build/views.py:1108 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr "Anhang bearbeiten"
-#: build/views.py:1118 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr "Anhang aktualisiert"
-#: build/views.py:1128 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr "Anhang löschen"
-#: build/views.py:1133 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr "Anhang gelöscht"
@@ -1766,7 +1771,7 @@ msgstr "Hersteller-Teilenummer"
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:171
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr "MPN"
@@ -1865,7 +1870,7 @@ msgstr "Produziert diese Firma Teile?"
msgid "Base Part"
msgstr "Basisteil"
-#: company/models.py:312 company/models.py:463 order/views.py:1372
+#: company/models.py:312 company/models.py:463 order/views.py:1384
msgid "Select part"
msgstr "Teil auswählen"
@@ -1905,7 +1910,7 @@ msgstr "Zulieferer auswählen"
#: company/models.py:475 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
@@ -2017,9 +2022,11 @@ msgstr "Sind Sie sicher, dass Sie die Firma '%(name)s' löschen wollen?"
#: company/templates/company/delete.html:12
#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
+msgid ""
+"There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
-msgstr "Es gibt %(count)s Teile, die von diesem Unternehmen bezogen werden.
\n"
+msgstr ""
+"Es gibt %(count)s Teile, die von diesem Unternehmen bezogen werden.
\n"
"Wenn dieser Lieferant gelöscht wird, werden auch diese Zulieferer-Teile gelöscht."
#: company/templates/company/detail.html:21
@@ -2034,7 +2041,7 @@ msgstr "Keine Website angegeben"
msgid "Uses default currency"
msgstr "verwendet Standard-Währung"
-#: company/templates/company/detail.html:67 order/models.py:440
+#: company/templates/company/detail.html:67 order/models.py:450
#: order/templates/order/sales_order_base.html:92 stock/models.py:415
#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
@@ -2123,13 +2130,13 @@ msgstr "Zulieferer-Teile"
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
+#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
msgstr "Neues Zulieferer-Teil anlegen"
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:74
+#: order/templates/order/purchase_order_detail.html:49
#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
msgid "New Supplier Part"
msgstr "Neues Zulieferer-Teil"
@@ -2227,7 +2234,7 @@ msgstr "Zuliefererteil entfernen"
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:184
+#: stock/views.py:1002 users/models.py:187
msgid "Delete"
msgstr "Löschen"
@@ -2253,7 +2260,7 @@ msgstr "Zulieferer-Teile"
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
msgid "Stock Items"
msgstr "BestandsObjekte"
@@ -2267,7 +2274,7 @@ msgstr "BestandsObjekte"
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr "Aufträge"
@@ -2279,7 +2286,7 @@ msgstr "Aufträge"
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr "Bestellungen"
@@ -2358,7 +2365,7 @@ msgid "Pricing Information"
msgstr "Preisinformationen ansehen"
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2624
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
@@ -2468,15 +2475,15 @@ msgstr "Neues Zulieferer-Teil anlegen"
msgid "Delete Supplier Part"
msgstr "Zulieferer-Teil entfernen"
-#: company/views.py:799 part/views.py:2628
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: company/views.py:855 part/views.py:2672
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
-#: company/views.py:870 part/views.py:2686
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
@@ -2566,7 +2573,7 @@ msgstr "Zieldatum für Auftrags-Lieferung."
msgid "Enter sales order number"
msgstr "Auftrag-Nummer eingeben"
-#: order/forms.py:145 order/models.py:452
+#: order/forms.py:145 order/models.py:462
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
@@ -2602,7 +2609,7 @@ msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr "Bestellungs-Status"
@@ -2643,8 +2650,8 @@ msgstr "Geplantes Lieferdatum für Auftrag."
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr "Anzahl muss größer Null sein"
@@ -2652,120 +2659,132 @@ msgstr "Anzahl muss größer Null sein"
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden"
-#: order/models.py:359
+#: order/models.py:348
+#, fuzzy
+#| msgid "Quantity must be integer"
+msgid "Quantity must be an integer"
+msgstr "Anzahl muss eine Ganzzahl sein"
+
+#: order/models.py:350
+#, fuzzy
+#| msgid "Quantity must be positive"
+msgid "Quantity must be a positive number"
+msgstr "Anzahl muss positiv sein"
+
+#: order/models.py:369
msgid "Received items"
msgstr "Elemente empfangen"
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr "Bestellung kann nicht versendet werden weil er nicht anhängig ist"
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr "Zulieferer-Teil"
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:214
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:648 stock/models.py:508
+#: order/models.py:658 stock/models.py:508
#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr "BestandsObjekt wurde nicht zugewiesen"
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein"
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr "Position"
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr "Position"
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr "BestandsObjekt für Zuordnung auswählen"
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
@@ -2813,9 +2832,24 @@ msgstr "Bestellstatus"
msgid "Issued"
msgstr "Aufgegeben"
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr "Neuer Lagerort"
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr "Neuen Lagerort anlegen"
+
+#: order/templates/order/order_cancel.html:8
+#, fuzzy
+#| msgid "Cancelling this order means that the order will no longer be editable."
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist."
#: order/templates/order/order_complete.html:7
@@ -2827,10 +2861,12 @@ msgid "This order has line items which have not been marked as received."
msgstr "Diese Bestellung enthält Positionen, die nicht als empfangen markiert wurden."
#: order/templates/order/order_complete.html:11
-msgid "Marking this order as complete will remove these line items."
-msgstr "Wenn Sie diese Bestellung als abgeschlossen markieren, werden diese Positionen entfernt."
+#, fuzzy
+#| msgid "Cancelling this order means that the order will no longer be editable."
+msgid "Completing this order means that the order and line items will no longer be editable."
+msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist."
-#: order/templates/order/order_issue.html:7
+#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
msgstr "Nachdem diese Bestellung plaziert ist können die Positionen nicht länger bearbeitbar ist."
@@ -2882,11 +2918,15 @@ msgid "Select Purchase Order"
msgstr "Bestellung auswählen"
#: order/templates/order/order_wizard/select_pos.html:45
-msgid "Create new purchase order for {{ supplier.name }}"
-msgstr "Neue Bestellung für {{ supplier.name }} anlegen"
+#, fuzzy, python-format
+#| msgid "Create new purchase order"
+msgid "Create new purchase order for %(name)s"
+msgstr "Neue Bestellung anlegen"
#: order/templates/order/order_wizard/select_pos.html:68
-msgid "Select a purchase order for"
+#, fuzzy, python-format
+#| msgid "Select a purchase order for"
+msgid "Select a purchase order for %(name)s"
msgstr "Bestellung auswählen für"
#: order/templates/order/po_attachments.html:12
@@ -2908,43 +2948,29 @@ msgid "Purchase Order Items"
msgstr "Bestellungs-Positionen"
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr "Position hinzufügen"
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:185 part/templates/part/category.html:227
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
-msgid "New Location"
-msgstr "Neuer Lagerort"
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr "Neuen Lagerort anlegen"
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr "Keine Positionen gefunden"
-#: order/templates/order/purchase_order_detail.html:205
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr "Stück-Preis"
-#: order/templates/order/purchase_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr "Position bearbeiten"
-#: order/templates/order/purchase_order_detail.html:247
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr "Position löschen"
-#: order/templates/order/purchase_order_detail.html:252
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr "Position empfangen"
@@ -2967,7 +2993,7 @@ msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
-#: users/models.py:38
+#: users/models.py:40
msgid "Parts"
msgstr "Teile"
@@ -3020,6 +3046,10 @@ msgstr "Kundenreferenz"
msgid "Warning"
msgstr "Warnung"
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist."
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr "Auftrags-Positionen"
@@ -3214,65 +3244,65 @@ msgstr "Anzahl kleiner null empfangen"
msgid "No lines specified"
msgstr "Keine Zeilen angegeben"
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr "{n} Teile bestellt"
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr "Zulieferer-Teil muss ausgewählt werden"
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr "Zulieferer muss zu Teil und Bestellung passen"
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr "Position löschen"
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr "Position gelöscht"
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr "Seriennummern zuweisen"
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr "{n} Positionen zugeordnet"
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr "Position auswählen"
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr "Kein passends Teil für Seriennummer gefunden"
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr "ist nicht auf Lager"
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr "bereits einem Auftrag zugeordnet"
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr "Lagerbestand dem Auftrag zuweisen"
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr "Zuordnung bearbeiten"
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr "Zuordnung entfernen"
@@ -3458,7 +3488,7 @@ msgstr "Teil-Kategorie"
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
#: templates/InvenTree/search.html:127 templates/stats.html:63
-#: users/models.py:37
+#: users/models.py:39
msgid "Part Categories"
msgstr "Teil-Kategorien"
@@ -4005,7 +4035,7 @@ msgstr "Neuen Bauauftrag beginnen"
msgid "All parts"
msgstr "Alle Teile"
-#: part/templates/part/category.html:29 part/views.py:2270
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr "Teil-Kategorie anlegen"
@@ -4695,63 +4725,63 @@ msgstr "Teil wurde gelöscht"
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:2069
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:2079
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:2086
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:2094
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr "Teilparameter anlegen"
-#: part/views.py:2144
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr "Teilparameter bearbeiten"
-#: part/views.py:2158
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr "Teilparameter löschen"
-#: part/views.py:2218
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/views.py:2256
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:2262
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:2314
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:2415
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:2471
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:2490
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/views.py:2560
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr "Stücklisten-Position bearbeiten"
-#: part/views.py:2616
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr "löschen von Stücklisten-Position bestätigen"
@@ -5302,15 +5332,15 @@ msgid "Stock adjustment actions"
msgstr "Bestands-Anpassungs Aktionen"
#: stock/templates/stock/item_base.html:164
-#: stock/templates/stock/location.html:65 templates/stock_table.html:56
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr "Bestand zählen"
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr "Bestand hinzufügen"
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr "Bestand entfernen"
@@ -5504,7 +5534,7 @@ msgid "Stock Details"
msgstr "Objekt-Details"
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:39
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
@@ -5690,7 +5720,7 @@ msgstr "Entfernen"
msgid "Add Stock Items"
msgstr "BestandsObjekte hinzufügen"
-#: stock/views.py:1001 users/models.py:180
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr "Hinzufügen"
@@ -5868,6 +5898,40 @@ msgstr "an Kunde versand"
msgid "No stock location set"
msgstr "Kein Lagerort gesetzt"
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr "Anzeige-Einstellungen"
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr "Farbschemata"
+
+#: templates/InvenTree/settings/appearance.html:29
+#, fuzzy, python-format
+#| msgid ""
+#| "\n"
+#| "\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+#| "\t\tPlease select another color theme :)\n"
+#| "\t"
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+"\n"
+"\t\tDie CSS Datei \"%(invalid_color_theme)s.css\" für das aktuell ausgewählte Farbschema wurde nicht gefunden.
\n"
+"\t\tBitte ein anderes Farbschema auswählen:)\n"
+"\t"
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr "Bauauftrag-Einstellungen"
@@ -5951,7 +6015,7 @@ msgstr "Auftrags-Einstellungen"
msgid "Stock Settings"
msgstr "Bestands-Einstellungen"
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:49
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr "Stock-Optionen"
@@ -5965,8 +6029,8 @@ msgid "Account"
msgstr "Konto"
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
-msgstr "Thema"
+msgid "Appearance"
+msgstr ""
#: templates/InvenTree/settings/tabs.html:13
msgid "InvenTree Settings"
@@ -5984,25 +6048,6 @@ msgstr "Bericht"
msgid "Categories"
msgstr "Kategorien"
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr "Anzeige-Einstellungen"
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr "Farbschemata"
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid "\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr "\n"
-"\t\tDie CSS Datei \"%(invalid_color_theme)s.css\" für das aktuell ausgewählte Farbschema wurde nicht gefunden.
\n"
-"\t\tBitte ein anderes Farbschema auswählen:)\n"
-"\t"
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr "Benutzerinformation"
@@ -6065,13 +6110,23 @@ msgid "View Code on GitHub"
msgstr "Code auf GitHub ansehen"
#: templates/about.html:63
-msgid "Get the App"
-msgstr "App herunterladen"
+msgid "Credits"
+msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr "Fehlerbericht senden"
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr "Schliessen"
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr "Anhang hinzufügen"
@@ -6267,7 +6322,7 @@ msgid "Quantity Per"
msgstr "Anzahl pro"
#: templates/js/build.js:638 templates/js/build.js:1056
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr "Bestand bestellen"
@@ -6400,11 +6455,6 @@ msgstr "Lade Daten"
msgid "Submit"
msgstr "Abschicken"
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr "Schliessen"
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr "ungültige Antwort vom Server"
@@ -6978,6 +7028,10 @@ msgstr "Alle"
msgid "Form errors exist"
msgstr "Fehler in Formular"
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr "Kaufen"
@@ -6990,7 +7044,7 @@ msgstr "Verkaufen"
msgid "Scan Barcode"
msgstr "Barcode scannen"
-#: templates/navbar.html:77 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr "Admin"
@@ -7122,43 +7176,43 @@ msgstr "Barcode Aktionen"
msgid "Print test reports"
msgstr "Test-Berichte drucken"
-#: templates/stock_table.html:54
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr "Zu ausgewählten BestandsObjekten hinzufügen"
-#: templates/stock_table.html:55
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr "Von ausgewählten BestandsObjekten entfernen"
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr "Inventur für gewählte BestandsObjekte"
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr "Ausgewählte BestandsObjekte verschieben"
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr "Bestand verschieben"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr "Ausgewählte Positionen bestellen"
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change status"
msgstr "Status ändern"
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr "Bestandsstatus ändern"
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr "Ausgewählte Positionen löschen"
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr "Bestand löschen"
@@ -7194,34 +7248,46 @@ msgstr "Berechtigungen"
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/models.py:167
+#: users/models.py:170
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:175
+#: users/models.py:178
msgid "Group"
msgstr "Gruppe"
-#: users/models.py:178
+#: users/models.py:181
msgid "View"
msgstr "Ansicht"
-#: users/models.py:178
+#: users/models.py:181
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:180
+#: users/models.py:183
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:182
+#: users/models.py:185
msgid "Change"
msgstr "Ändern"
-#: users/models.py:182
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:184
+#: users/models.py:187
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
+
+#~ msgid "Marking this order as complete will remove these line items."
+#~ msgstr "Wenn Sie diese Bestellung als abgeschlossen markieren, werden diese Positionen entfernt."
+
+#~ msgid "Create new purchase order for {{ supplier.name }}"
+#~ msgstr "Neue Bestellung für {{ supplier.name }} anlegen"
+
+#~ msgid "Theme"
+#~ msgstr "Thema"
+
+#~ msgid "Get the App"
+#~ msgstr "App herunterladen"
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 14192c38d6..097f4c0f8c 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-14 11:13+0000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -34,10 +34,10 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:110 build/forms.py:99 build/forms.py:120
-#: build/forms.py:142 build/forms.py:166 build/forms.py:188 build/forms.py:223
+#: InvenTree/forms.py:110 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
#: order/forms.py:27 order/forms.py:38 order/forms.py:49 order/forms.py:60
-#: order/forms.py:71 part/forms.py:132
+#: order/forms.py:71 part/forms.py:134
msgid "Confirm"
msgstr ""
@@ -49,7 +49,7 @@ msgstr ""
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:159 templates/registration/login.html:76
+#: InvenTree/forms.py:159 templates/registration/login.html:77
msgid "Enter password"
msgstr ""
@@ -73,40 +73,41 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:361 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr ""
-
-#: InvenTree/helpers.py:364
-msgid "Empty serial number string"
-msgstr ""
-
-#: InvenTree/helpers.py:385
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:389 InvenTree/helpers.py:392 InvenTree/helpers.py:395
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:400
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:408
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:412
+#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:59 stock/models.py:1659
+#: InvenTree/models.py:59 stock/models.py:1662
msgid "Attachment"
msgstr ""
@@ -122,9 +123,9 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1888
+#: InvenTree/models.py:68 InvenTree/models.py:69 part/models.py:1908
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/stock.js:964
+#: templates/js/stock.js:1041
msgid "User"
msgstr ""
@@ -133,30 +134,33 @@ msgid "upload date"
msgstr ""
#: InvenTree/models.py:107 InvenTree/models.py:108 label/models.py:101
-#: part/models.py:686 part/models.py:2029 part/templates/part/params.html:27
-#: report/models.py:179 templates/InvenTree/search.html:136
-#: templates/InvenTree/search.html:273 templates/js/part.js:109
+#: part/models.py:686 part/models.py:2049 part/templates/part/params.html:27
+#: report/models.py:179 templates/InvenTree/search.html:137
+#: templates/InvenTree/search.html:289 templates/js/part.js:110
+#: templates/js/part.js:553 templates/js/stock.js:944
msgid "Name"
msgstr ""
#: InvenTree/models.py:114 build/models.py:134
-#: build/templates/build/detail.html:21 company/models.py:365
-#: company/templates/company/detail.html:26
-#: company/templates/company/supplier_part_base.html:70
+#: build/templates/build/detail.html:21 company/models.py:342
+#: company/models.py:494 company/templates/company/detail.html:27
+#: company/templates/company/manufacturer_part_base.html:72
+#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:143 templates/InvenTree/search.html:208
-#: templates/InvenTree/search.html:280
+#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
+#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9 templates/js/bom.js:190
-#: templates/js/build.js:677 templates/js/build.js:944
+#: templates/js/build.js:736 templates/js/build.js:1004
#: templates/js/company.js:56 templates/js/order.js:183
-#: templates/js/order.js:280 templates/js/part.js:168 templates/js/part.js:251
-#: templates/js/part.js:370 templates/js/part.js:566 templates/js/stock.js:554
-#: templates/js/stock.js:938
+#: templates/js/order.js:280 templates/js/part.js:169 templates/js/part.js:252
+#: templates/js/part.js:371 templates/js/part.js:565 templates/js/part.js:643
+#: templates/js/stock.js:554 templates/js/stock.js:956
+#: templates/js/stock.js:1015
msgid "Description"
msgstr ""
@@ -168,92 +172,92 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:480
+#: InvenTree/settings.py:491
msgid "English"
msgstr ""
-#: InvenTree/settings.py:481
+#: InvenTree/settings.py:492
msgid "French"
msgstr ""
-#: InvenTree/settings.py:482
+#: InvenTree/settings.py:493
msgid "German"
msgstr ""
-#: InvenTree/settings.py:483
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:484
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr ""
-#: InvenTree/status.py:84
+#: InvenTree/status.py:93
msgid "Background worker check failed"
msgstr ""
-#: InvenTree/status.py:88
+#: InvenTree/status.py:97
msgid "Email backend not configured"
msgstr ""
-#: InvenTree/status.py:91
+#: InvenTree/status.py:100
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:94 InvenTree/status_codes.py:135
-#: InvenTree/status_codes.py:228
+#: InvenTree/status_codes.py:102 InvenTree/status_codes.py:143
+#: InvenTree/status_codes.py:236
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:95
+#: InvenTree/status_codes.py:103
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:96 InvenTree/status_codes.py:231
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:239
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:97 InvenTree/status_codes.py:137
-#: InvenTree/status_codes.py:230
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:238
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:98 InvenTree/status_codes.py:138
-#: InvenTree/status_codes.py:180
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:188
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:99 InvenTree/status_codes.py:139
-#: InvenTree/status_codes.py:182
+#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
+#: InvenTree/status_codes.py:190
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:136
+#: InvenTree/status_codes.py:144
#: order/templates/order/sales_order_base.html:124
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:176
+#: InvenTree/status_codes.py:184
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:177
+#: InvenTree/status_codes.py:185
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:178
+#: InvenTree/status_codes.py:186
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:179
+#: InvenTree/status_codes.py:187
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:181
+#: InvenTree/status_codes.py:189
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:229
+#: InvenTree/status_codes.py:237
msgid "Production"
msgstr ""
@@ -312,7 +316,7 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:887 templates/navbar.html:85
+#: InvenTree/views.py:887 templates/navbar.html:95
msgid "System Information"
msgstr ""
@@ -356,138 +360,150 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/forms.py:34
+#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
-#: build/forms.py:35
+#: build/forms.py:38
msgid "Order target date"
msgstr ""
-#: build/forms.py:39 build/templates/build/build_base.html:104
+#: build/forms.py:42 build/templates/build/build_base.html:136
#: build/templates/build/detail.html:121 order/forms.py:109 order/forms.py:144
#: order/templates/order/order_base.html:124
#: order/templates/order/sales_order_base.html:117
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/build.js:723 templates/js/order.js:200
+#: templates/js/build.js:783 templates/js/order.js:200
#: templates/js/order.js:298
msgid "Target Date"
msgstr ""
-#: build/forms.py:40 build/models.py:224
-msgid ""
-"Target date for build completion. Build will be overdue after this date."
+#: build/forms.py:43 build/models.py:224
+msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:45 build/forms.py:87 build/forms.py:257 build/models.py:1103
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
+#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
-#: build/templates/build/build_base.html:91
-#: build/templates/build/detail.html:31 common/models.py:696
-#: company/forms.py:131 company/templates/company/supplier_part_pricing.html:77
+#: build/templates/build/build_base.html:123
+#: build/templates/build/detail.html:31 common/models.py:703
+#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:193
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
-#: order/templates/order/sales_order_detail.html:224 part/forms.py:340
-#: part/forms.py:369 part/forms.py:385 part/models.py:2158
+#: order/templates/order/sales_order_detail.html:224 part/forms.py:342
+#: part/forms.py:371 part/forms.py:387 part/models.py:2178
#: part/templates/part/allocation.html:19
#: part/templates/part/allocation.html:53
-#: part/templates/part/part_pricing.html:12
-#: part/templates/part/part_pricing.html:19
+#: part/templates/part/part_pricing.html:11
+#: part/templates/part/part_pricing.html:18
#: part/templates/part/sale_prices.html:85
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1563
-#: stock/templates/stock/item_base.html:51
-#: stock/templates/stock/item_base.html:57
-#: stock/templates/stock/item_base.html:240
+#: stock/forms.py:175 stock/forms.py:308 stock/models.py:1566
+#: stock/templates/stock/item_base.html:244
#: stock/templates/stock/stock_adjust.html:18 templates/js/barcode.js:364
-#: templates/js/bom.js:205 templates/js/build.js:420 templates/js/build.js:954
-#: templates/js/stock.js:956 templates/js/stock.js:1194
+#: templates/js/bom.js:205 templates/js/build.js:476 templates/js/build.js:1014
+#: templates/js/stock.js:1033 templates/js/stock.js:1271
msgid "Quantity"
msgstr ""
-#: build/forms.py:46
+#: build/forms.py:49
msgid "Number of items to build"
msgstr ""
-#: build/forms.py:88
+#: build/forms.py:91
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:92 order/forms.py:233 stock/forms.py:118
+#: build/forms.py:95 order/forms.py:233 stock/forms.py:118
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:94
+#: build/forms.py:97
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:100
+#: build/forms.py:103
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:121
+#: build/forms.py:124
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:142
+#: build/forms.py:145
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:166
+#: build/forms.py:169
msgid "Confirm stock allocation"
msgstr ""
-#: build/forms.py:189
+#: build/forms.py:186
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:213 build/templates/build/auto_allocate.html:18
+#: build/forms.py:210 build/templates/build/auto_allocate.html:18
#: order/forms.py:82 stock/forms.py:347
-#: stock/templates/stock/item_base.html:270
+#: stock/templates/stock/item_base.html:274
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:244 templates/js/barcode.js:363
-#: templates/js/barcode.js:531 templates/js/build.js:434
+#: templates/InvenTree/search.html:260 templates/js/barcode.js:363
+#: templates/js/barcode.js:531 templates/js/build.js:490
#: templates/js/stock.js:641
msgid "Location"
msgstr ""
-#: build/forms.py:214
+#: build/forms.py:211
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:219
-msgid "Confirm incomplete"
+#: build/forms.py:215 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:59 order/models.py:455
+#: order/templates/order/receive_parts.html:24
+#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
+#: templates/js/barcode.js:119 templates/js/build.js:770
+#: templates/js/order.js:187 templates/js/order.js:285
+#: templates/js/stock.js:628 templates/js/stock.js:1279
+msgid "Status"
msgstr ""
-#: build/forms.py:220
-msgid "Confirm completion with incomplete stock allocation"
+#: build/forms.py:216
+msgid "Build output stock status"
msgstr ""
#: build/forms.py:223
+msgid "Confirm incomplete"
+msgstr ""
+
+#: build/forms.py:224
+msgid "Confirm completion with incomplete stock allocation"
+msgstr ""
+
+#: build/forms.py:227
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:243
+#: build/forms.py:252
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:243 build/views.py:66
+#: build/forms.py:252 build/views.py:66
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:257
+#: build/forms.py:266
msgid "Select quantity of stock to allocate"
msgstr ""
-#: build/models.py:65 build/templates/build/build_base.html:8
-#: build/templates/build/build_base.html:35
+#: build/models.py:65 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:63
#: part/templates/part/allocation.html:23
#: report/templates/report/inventree_build_order_base.html:106
msgid "Build Order"
@@ -497,9 +513,9 @@ msgstr ""
#: build/templates/build/index.html:15 order/templates/order/so_builds.html:12
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
-#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:182
-#: templates/InvenTree/search.html:169
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
+#: templates/InvenTree/search.html:185
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr ""
@@ -507,12 +523,12 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:188
-#: order/templates/order/sales_order_detail.html:219 part/models.py:2167
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
-#: templates/js/build.js:509 templates/js/build.js:948
+#: templates/js/build.js:565 templates/js/build.js:1008
msgid "Reference"
msgstr ""
@@ -520,7 +536,7 @@ msgstr ""
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:146 build/templates/build/build_base.html:121
+#: build/models.py:146 build/templates/build/build_base.html:153
#: build/templates/build/detail.html:77
msgid "Parent Build"
msgstr ""
@@ -530,28 +546,27 @@ msgid "BuildOrder to which this build is allocated"
msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:86
-#: build/templates/build/detail.html:26 company/models.py:539
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/build_base.html:118
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
-#: part/models.py:1856 part/models.py:1868 part/models.py:1886
-#: part/models.py:1961 part/models.py:2057 part/models.py:2142
-#: part/templates/part/part_app_base.html:7
-#: part/templates/part/part_pricing.html:15 part/templates/part/related.html:29
+#: part/models.py:1876 part/models.py:1888 part/models.py:1906
+#: part/models.py:1981 part/models.py:2077 part/models.py:2162
+#: part/templates/part/part_app_base.html:8
+#: part/templates/part/part_pricing.html:14 part/templates/part/related.html:29
#: part/templates/part/set_category.html:13
-#: part/templates/part/subcategories.html:17
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:111 templates/InvenTree/search.html:194
+#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
#: templates/js/barcode.js:362 templates/js/bom.js:163
-#: templates/js/build.js:681 templates/js/build.js:921
-#: templates/js/company.js:138 templates/js/part.js:232
-#: templates/js/part.js:337 templates/js/stock.js:523
-#: templates/js/stock.js:1266
+#: templates/js/build.js:741 templates/js/build.js:981
+#: templates/js/company.js:140 templates/js/company.js:238
+#: templates/js/part.js:233 templates/js/part.js:338 templates/js/stock.js:523
+#: templates/js/stock.js:1343
msgid "Part"
msgstr ""
@@ -572,9 +587,7 @@ msgid "Source Location"
msgstr ""
#: build/models.py:178
-msgid ""
-"Select location to take stock from for this build (leave blank to take from "
-"any stock location)"
+msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
#: build/models.py:183
@@ -601,7 +614,7 @@ msgstr ""
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:204 part/templates/part/part_base.html:159
+#: build/models.py:204 part/templates/part/part_base.html:160
msgid "Build Status"
msgstr ""
@@ -609,7 +622,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:212 stock/models.py:430
+#: build/models.py:212 stock/models.py:432
msgid "Batch Code"
msgstr ""
@@ -622,11 +635,11 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr ""
-#: build/models.py:227 order/models.py:218
+#: build/models.py:227 order/models.py:218 templates/js/build.js:788
msgid "Completion Date"
msgstr ""
@@ -642,7 +655,7 @@ msgstr ""
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:250 build/templates/build/build_base.html:142
+#: build/models.py:250 build/templates/build/build_base.html:174
#: build/templates/build/detail.html:105 order/models.py:119
#: order/templates/order/order_base.html:138
#: order/templates/order/sales_order_base.html:138 part/models.py:886
@@ -655,33 +668,35 @@ msgid "User responsible for this build order"
msgstr ""
#: build/models.py:256 build/templates/build/detail.html:91
-#: company/templates/company/supplier_part_base.html:77
+#: company/templates/company/manufacturer_part_base.html:79
+#: company/templates/company/manufacturer_part_detail.html:28
+#: company/templates/company/supplier_part_base.html:78
#: company/templates/company/supplier_part_detail.html:28
-#: part/templates/part/detail.html:83 part/templates/part/part_base.html:100
-#: stock/models.py:424 stock/templates/stock/item_base.html:330
+#: part/templates/part/detail.html:83 part/templates/part/part_base.html:101
+#: stock/models.py:426 stock/templates/stock/item_base.html:334
msgid "External Link"
msgstr ""
-#: build/models.py:257 part/models.py:744 stock/models.py:426
+#: build/models.py:257 part/models.py:744 stock/models.py:428
msgid "Link to external URL"
msgstr ""
-#: build/models.py:261 build/templates/build/navbar.html:59
-#: company/models.py:133 company/models.py:372
-#: company/templates/company/navbar.html:59
-#: company/templates/company/navbar.html:62 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: build/models.py:261 build/templates/build/navbar.html:53
+#: company/models.py:135 company/models.py:501
+#: company/templates/company/navbar.html:70
+#: company/templates/company/navbar.html:73 order/models.py:123
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:227
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
-#: part/templates/part/navbar.html:122
+#: part/templates/part/navbar.html:128
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:173 stock/forms.py:317 stock/forms.py:349 stock/forms.py:377
-#: stock/models.py:496 stock/models.py:1555 stock/models.py:1665
+#: stock/models.py:498 stock/models.py:1558 stock/models.py:1668
#: stock/templates/stock/navbar.html:57 templates/js/barcode.js:37
-#: templates/js/bom.js:329 templates/js/stock.js:128 templates/js/stock.js:671
+#: templates/js/bom.js:333 templates/js/stock.js:128 templates/js/stock.js:671
msgid "Notes"
msgstr ""
@@ -689,141 +704,152 @@ msgstr ""
msgid "Extra build notes"
msgstr ""
-#: build/models.py:673
+#: build/models.py:739
msgid "No build output specified"
msgstr ""
-#: build/models.py:676
+#: build/models.py:742
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:679
+#: build/models.py:745
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:754
+#: build/models.py:838
msgid "Completed build output"
msgstr ""
-#: build/models.py:996
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1018
-msgid "Build item must specify a build output"
+#: build/models.py:1157
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1023
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1027
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1034 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1038 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1042
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1082 stock/templates/stock/item_base.html:302
-#: templates/InvenTree/search.html:167 templates/js/build.js:655
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
+#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1083
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1090 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:89
-#: stock/templates/stock/item_base.html:324
-#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:771
-#: templates/js/stock.js:927 templates/js/stock.js:1185
+#: stock/templates/stock/item_base.html:93
+#: stock/templates/stock/item_base.html:328
+#: stock/templates/stock/stock_adjust.html:16 templates/js/build.js:831
+#: templates/js/stock.js:1004 templates/js/stock.js:1262
msgid "Stock Item"
msgstr ""
-#: build/models.py:1091
+#: build/models.py:1229
msgid "Source stock item"
msgstr ""
-#: build/models.py:1104
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1112
+#: build/models.py:1250
msgid "Install into"
msgstr ""
-#: build/models.py:1113
+#: build/models.py:1251
msgid "Destination stock item"
msgstr ""
+#: build/templates/build/allocate.html:7
+msgid "Allocate Parts"
+msgstr ""
+
#: build/templates/build/allocate.html:15
-msgid "Incomplete Build Ouputs"
+msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/allocate.html:21
-msgid "Build order has been completed"
+#: build/templates/build/allocate.html:22
+msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/allocate.html:26
-msgid "Create new build output"
+#: build/templates/build/allocate.html:23
+msgid "Auto Allocate"
msgstr ""
-#: build/templates/build/allocate.html:27
-msgid "Create New Output"
+#: build/templates/build/allocate.html:25 templates/js/build.js:646
+msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/allocate.html:30
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
+msgid "Unallocate Stock"
+msgstr ""
+
+#: build/templates/build/allocate.html:29
msgid "Order required parts"
msgstr ""
-#: build/templates/build/allocate.html:31
-#: company/templates/company/detail_part.html:31 order/views.py:794
+#: build/templates/build/allocate.html:30
+#: company/templates/company/detail_manufacturer_part.html:33
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
-#: build/templates/build/allocate.html:34 templates/js/build.js:590
-msgid "Unallocate stock"
+#: build/templates/build/allocate.html:36
+msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/allocate.html:35 build/views.py:338 build/views.py:784
-msgid "Unallocate Stock"
+#: build/templates/build/allocate.html:40
+msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/allocate.html:49
-msgid "Create a new build output"
+#: build/templates/build/allocate.html:47
+msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/allocate.html:50
-msgid "No incomplete build outputs remain."
-msgstr ""
-
-#: build/templates/build/allocate.html:51
-msgid "Create a new build output using the button above"
+#: build/templates/build/allocation_card.html:21
+#: build/templates/build/complete_output.html:46
+#: order/templates/order/sales_order_detail.html:75
+#: order/templates/order/sales_order_detail.html:157
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:420 stock/templates/stock/item_base.html:238
+#: templates/js/build.js:474
+msgid "Serial Number"
msgstr ""
#: build/templates/build/attachments.html:12
-#: build/templates/build/navbar.html:49 build/templates/build/navbar.html:52
+#: build/templates/build/navbar.html:43 build/templates/build/navbar.html:46
#: order/templates/order/po_navbar.html:26
-#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:113
-#: part/templates/part/navbar.html:116 stock/templates/stock/navbar.html:47
+#: order/templates/order/so_navbar.html:29 part/templates/part/navbar.html:119
+#: part/templates/part/navbar.html:122 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
msgstr ""
@@ -833,8 +859,7 @@ msgid "Automatically Allocate Stock"
msgstr ""
#: build/templates/build/auto_allocate.html:10
-msgid ""
-"The following stock items will be allocated to the specified build output"
+msgid "The following stock items will be allocated to the specified build output"
msgstr ""
#: build/templates/build/auto_allocate.html:37
@@ -845,112 +870,153 @@ msgstr ""
msgid "Stock items will have to be manually allocated"
msgstr ""
-#: build/templates/build/build_base.html:14
-msgid "This Build Order is allocated to Sales Order"
+#: build/templates/build/build_base.html:16
+#, python-format
+msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:19
-msgid "This Build Order is a child of Build Order"
+#: build/templates/build/build_base.html:22
+#, python-format
+msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:31
+msgid "Build Order is ready to mark as completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:36
+msgid "Build Order cannot be completed as outstanding outputs remain"
+msgstr ""
+
+#: build/templates/build/build_base.html:41
+msgid "Required build quantity has not yet been completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:46
+msgid "Stock has not been fully allocated to this Build Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:65
#: company/templates/company/company_base.html:40
-#: company/templates/company/supplier_part_base.html:25
+#: company/templates/company/manufacturer_part_base.html:25
+#: company/templates/company/supplier_part_base.html:26
#: order/templates/order/order_base.html:26
#: order/templates/order/sales_order_base.html:35
-#: part/templates/part/category.html:14 part/templates/part/part_base.html:28
-#: stock/templates/stock/item_base.html:114
-#: stock/templates/stock/location.html:24
+#: part/templates/part/category.html:18 part/templates/part/part_base.html:29
+#: stock/templates/stock/item_base.html:118
+#: stock/templates/stock/location.html:31
msgid "Admin view"
msgstr ""
-#: build/templates/build/build_base.html:43
-#: build/templates/build/build_base.html:108
+#: build/templates/build/build_base.html:71
+#: build/templates/build/build_base.html:140
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:41
#: order/templates/order/sales_order_base.html:86
-#: templates/js/table_filters.js:218 templates/js/table_filters.js:237
-#: templates/js/table_filters.js:254
+#: templates/js/table_filters.js:240 templates/js/table_filters.js:259
+#: templates/js/table_filters.js:276
msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:52
+#: build/templates/build/build_base.html:80
msgid "Print actions"
msgstr ""
-#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:84
msgid "Print Build Order"
msgstr ""
-#: build/templates/build/build_base.html:62
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:66
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:68
-#: build/templates/build/build_base.html:176
+#: build/templates/build/build_base.html:90
+#: build/templates/build/build_base.html:215
msgid "Complete Build"
msgstr ""
-#: build/templates/build/build_base.html:69
-#: build/templates/build/build_base.html:167 build/views.py:57
+#: build/templates/build/build_base.html:95
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:99
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:101
+#: build/templates/build/build_base.html:199 build/views.py:57
msgid "Cancel Build"
msgstr ""
-#: build/templates/build/build_base.html:82
+#: build/templates/build/build_base.html:114
#: build/templates/build/detail.html:11
msgid "Build Details"
msgstr ""
-#: build/templates/build/build_base.html:96
-#: build/templates/build/detail.html:59 order/models.py:445
-#: order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:376 templates/InvenTree/search.html:236
-#: templates/js/barcode.js:119 templates/js/build.js:710
-#: templates/js/order.js:187 templates/js/order.js:285
-#: templates/js/stock.js:628 templates/js/stock.js:1202
-msgid "Status"
+#: build/templates/build/build_base.html:140
+#, python-format
+msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:108
-msgid "This build was due on"
-msgstr ""
-
-#: build/templates/build/build_base.html:115
+#: build/templates/build/build_base.html:147
#: build/templates/build/detail.html:64
msgid "Progress"
msgstr ""
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/build_base.html:160
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
#: part/templates/part/allocation.html:30
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:264 templates/js/order.js:245
+#: stock/templates/stock/item_base.html:268 templates/js/order.js:245
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:135
+#: build/templates/build/build_base.html:167
#: build/templates/build/detail.html:98
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
+#: build/templates/build/build_base.html:207
+msgid "Incomplete Outputs"
+msgstr ""
+
+#: build/templates/build/build_base.html:208
+msgid "Build Order cannot be completed as incomplete build outputs remain"
+msgstr ""
+
#: build/templates/build/build_children.html:10
-#: build/templates/build/navbar.html:42
+#: build/templates/build/navbar.html:36
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/build_output.html:10
-#: build/templates/build/navbar.html:35 build/templates/build/navbar.html:38
-msgid "Build Outputs"
+#: build/templates/build/build_output.html:15
+msgid "Incomplete Build Outputs"
+msgstr ""
+
+#: build/templates/build/build_output.html:22
+msgid "Create new build output"
+msgstr ""
+
+#: build/templates/build/build_output.html:23
+msgid "Create New Output"
+msgstr ""
+
+#: build/templates/build/build_output.html:36
+msgid "Create a new build output"
+msgstr ""
+
+#: build/templates/build/build_output.html:37
+msgid "No incomplete build outputs remain."
+msgstr ""
+
+#: build/templates/build/build_output.html:38
+msgid "Create a new build output using the button above"
+msgstr ""
+
+#: build/templates/build/build_output.html:49
+msgid "Completed Build Outputs"
msgstr ""
#: build/templates/build/build_output_create.html:7
@@ -978,11 +1044,11 @@ msgid "Are you sure you wish to cancel this build?"
msgstr ""
#: build/templates/build/complete.html:8
-msgid "Build can be completed"
+msgid "Build Order is complete"
msgstr ""
#: build/templates/build/complete.html:12
-msgid "Build cannot be completed"
+msgid "Build Order is incomplete"
msgstr ""
#: build/templates/build/complete.html:15
@@ -993,19 +1059,23 @@ msgstr ""
msgid "Required build quantity has not been completed"
msgstr ""
-#: build/templates/build/complete_output.html:9
-msgid "Stock allocation is complete"
+#: build/templates/build/complete.html:21
+msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:13
+#: build/templates/build/complete_output.html:10
+msgid "Stock allocation is complete for this output"
+msgstr ""
+
+#: build/templates/build/complete_output.html:14
msgid "Stock allocation is incomplete"
msgstr ""
-#: build/templates/build/complete_output.html:19
-msgid "parts have not been fully allocated"
+#: build/templates/build/complete_output.html:20
+msgid "tracked parts have not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:40
+#: build/templates/build/complete_output.html:41
msgid "The following items will be created"
msgstr ""
@@ -1014,11 +1084,13 @@ msgid "Select a stock item to allocate to the selected build output"
msgstr ""
#: build/templates/build/create_build_item.html:11
-msgid "The allocated stock will be installed into the following build output:"
+#, python-format
+msgid "The allocated stock will be installed into the following build output:
%(output)s"
msgstr ""
-#: build/templates/build/create_build_item.html:19
-msgid "No stock available for"
+#: build/templates/build/create_build_item.html:17
+#, python-format
+msgid "No stock available for %(part)s"
msgstr ""
#: build/templates/build/delete_build_item.html:8
@@ -1046,15 +1118,15 @@ msgid "Destination location not specified"
msgstr ""
#: build/templates/build/detail.html:70
-#: stock/templates/stock/item_base.html:288 templates/js/stock.js:636
-#: templates/js/stock.js:1209 templates/js/table_filters.js:85
-#: templates/js/table_filters.js:179
+#: stock/templates/stock/item_base.html:292 templates/js/stock.js:636
+#: templates/js/stock.js:1286 templates/js/table_filters.js:107
+#: templates/js/table_filters.js:201
msgid "Batch"
msgstr ""
#: build/templates/build/detail.html:116
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:111 templates/js/build.js:718
+#: order/templates/order/sales_order_base.html:111 templates/js/build.js:778
msgid "Created"
msgstr ""
@@ -1062,8 +1134,7 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:132 templates/js/build.js:696
-#: templates/js/build.js:728
+#: build/templates/build/detail.html:132 templates/js/build.js:756
msgid "Completed"
msgstr ""
@@ -1075,7 +1146,7 @@ msgstr ""
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
-#: build/templates/build/index.html:28 build/views.py:657
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr ""
@@ -1106,20 +1177,20 @@ msgstr ""
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/templates/build/parts.html:11
-msgid "Required Parts"
+#: build/templates/build/navbar.html:21 build/templates/build/navbar.html:24
+#: build/views.py:91
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/navbar.html:27 build/templates/build/navbar.html:30
-msgid "In Progress"
+#: build/templates/build/navbar.html:29 build/templates/build/navbar.html:32
+msgid "Build Outputs"
msgstr ""
-#: build/templates/build/navbar.html:45
+#: build/templates/build/navbar.html:39
msgid "Child Builds"
msgstr ""
-#: build/templates/build/navbar.html:56
+#: build/templates/build/navbar.html:50
msgid "Build Order Notes"
msgstr ""
@@ -1137,7 +1208,7 @@ msgstr ""
#: build/templates/build/notes.html:26 company/templates/company/notes.html:24
#: order/templates/order/order_notes.html:27
#: order/templates/order/sales_order_notes.html:29
-#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:454
+#: part/templates/part/notes.html:27 stock/templates/stock/item_base.html:470
#: stock/templates/stock/item_notes.html:26
msgid "Save"
msgstr ""
@@ -1154,149 +1225,153 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:91
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/views.py:154 build/views.py:314 build/views.py:485
-msgid "Build output must be specified"
-msgstr ""
-
-#: build/views.py:168
+#: build/views.py:138
msgid "Allocated stock to build output"
msgstr ""
-#: build/views.py:180
+#: build/views.py:150
msgid "Create Build Output"
msgstr ""
-#: build/views.py:203 stock/models.py:966 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:212
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:278
+#: build/views.py:259
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:299 build/views.py:383
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:300 build/views.py:384 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:312
+#: build/views.py:293
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:326
+#: build/views.py:295 build/views.py:496
+msgid "Build output must be specified"
+msgstr ""
+
+#: build/views.py:307
msgid "Build output deleted"
msgstr ""
-#: build/views.py:408
+#: build/views.py:405
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:414
-msgid "Build order cannot be completed"
+#: build/views.py:411
+msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:425
+#: build/views.py:422
msgid "Completed build order"
msgstr ""
-#: build/views.py:441
+#: build/views.py:438
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:476
+#: build/views.py:480
+msgid "Invalid stock status value selected"
+msgstr ""
+
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:573
+#: build/views.py:592
msgid "Build output completed"
msgstr ""
-#: build/views.py:711
+#: build/views.py:732
msgid "Created new build"
msgstr ""
-#: build/views.py:732
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr ""
-#: build/views.py:765
+#: build/views.py:786
msgid "Edited build"
msgstr ""
-#: build/views.py:774
+#: build/views.py:795
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:789
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:801
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr ""
-#: build/views.py:844
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr ""
-#: build/views.py:850
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:851 templates/js/bom.js:230 templates/js/build.js:519
-#: templates/js/build.js:778 templates/js/build.js:961
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
+#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr ""
-#: build/views.py:853
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr ""
-#: build/views.py:1016
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:1020
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1049
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1062 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1098 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1108 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1118 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1123 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
@@ -1308,335 +1383,343 @@ msgstr ""
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:62 company/models.py:95 company/models.py:96
-msgid "Company name"
+#: common/models.py:62
+msgid "Use instance name"
msgstr ""
#: common/models.py:63
+msgid "Use the instance name in the title-bar"
+msgstr ""
+
+#: common/models.py:69 company/models.py:97 company/models.py:98
+msgid "Company name"
+msgstr ""
+
+#: common/models.py:70
msgid "Internal company name"
msgstr ""
-#: common/models.py:68
+#: common/models.py:75
msgid "Base URL"
msgstr ""
-#: common/models.py:69
+#: common/models.py:76
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:75
+#: common/models.py:82
msgid "Default Currency"
msgstr ""
-#: common/models.py:76
+#: common/models.py:83
msgid "Default currency"
msgstr ""
-#: common/models.py:82
+#: common/models.py:89
msgid "Download from URL"
msgstr ""
-#: common/models.py:83
+#: common/models.py:90
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:89
+#: common/models.py:96
msgid "Barcode Support"
msgstr ""
-#: common/models.py:90
+#: common/models.py:97
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:96
+#: common/models.py:103
msgid "IPN Regex"
msgstr ""
-#: common/models.py:97
+#: common/models.py:104
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:101
+#: common/models.py:108
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:102
+#: common/models.py:109
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:108
+#: common/models.py:115
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:109
+#: common/models.py:116
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:115
+#: common/models.py:122
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:116
+#: common/models.py:123
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:122
+#: common/models.py:129
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:123
+#: common/models.py:130
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:129
+#: common/models.py:136
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:130
+#: common/models.py:137
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:136
+#: common/models.py:143
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:137
+#: common/models.py:144
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:143
+#: common/models.py:150
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:144
+#: common/models.py:151
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:150 part/models.py:2059 part/templates/part/detail.html:160
+#: common/models.py:157 part/models.py:2079 part/templates/part/detail.html:160
#: report/models.py:185 stock/forms.py:259 templates/js/table_filters.js:24
-#: templates/js/table_filters.js:288
+#: templates/js/table_filters.js:310
msgid "Template"
msgstr ""
-#: common/models.py:151
+#: common/models.py:158
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:157 part/models.py:834 part/templates/part/detail.html:170
-#: templates/js/table_filters.js:101 templates/js/table_filters.js:300
+#: common/models.py:164 part/models.py:834 part/templates/part/detail.html:170
+#: templates/js/table_filters.js:123 templates/js/table_filters.js:322
msgid "Assembly"
msgstr ""
-#: common/models.py:158
+#: common/models.py:165
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:164 part/models.py:840 part/templates/part/detail.html:180
-#: templates/js/table_filters.js:304
+#: common/models.py:171 part/models.py:840 part/templates/part/detail.html:180
+#: templates/js/table_filters.js:326
msgid "Component"
msgstr ""
-#: common/models.py:165
+#: common/models.py:172
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:171 part/models.py:851 part/templates/part/detail.html:200
+#: common/models.py:178 part/models.py:851 part/templates/part/detail.html:200
msgid "Purchaseable"
msgstr ""
-#: common/models.py:172
+#: common/models.py:179
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:178 part/models.py:856 part/templates/part/detail.html:210
-#: templates/js/table_filters.js:312
+#: common/models.py:185 part/models.py:856 part/templates/part/detail.html:210
+#: templates/js/table_filters.js:334
msgid "Salable"
msgstr ""
-#: common/models.py:179
+#: common/models.py:186
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:185 part/models.py:846 part/templates/part/detail.html:190
-#: templates/js/table_filters.js:32 templates/js/table_filters.js:316
+#: common/models.py:192 part/models.py:846 part/templates/part/detail.html:190
+#: templates/js/table_filters.js:32 templates/js/table_filters.js:338
msgid "Trackable"
msgstr ""
-#: common/models.py:186
+#: common/models.py:193
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:192 part/models.py:866 part/templates/part/detail.html:150
+#: common/models.py:199 part/models.py:866 part/templates/part/detail.html:150
#: templates/js/table_filters.js:28
msgid "Virtual"
msgstr ""
-#: common/models.py:193
+#: common/models.py:200
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:199
+#: common/models.py:206
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:200
+#: common/models.py:207
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:206
+#: common/models.py:213
msgid "Debug Mode"
msgstr ""
-#: common/models.py:207
+#: common/models.py:214
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:213
+#: common/models.py:220
msgid "Page Size"
msgstr ""
-#: common/models.py:214
+#: common/models.py:221
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:224
+#: common/models.py:231
msgid "Test Reports"
msgstr ""
-#: common/models.py:225
+#: common/models.py:232
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:231
+#: common/models.py:238
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:232
+#: common/models.py:239
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:238
+#: common/models.py:245
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:239
+#: common/models.py:246
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:245
+#: common/models.py:252
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:246
+#: common/models.py:253
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:248 part/templates/part/detail.html:121
+#: common/models.py:255 part/templates/part/detail.html:121
msgid "days"
msgstr ""
-#: common/models.py:253
+#: common/models.py:260
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:254
+#: common/models.py:261
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:260
+#: common/models.py:267
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:261
+#: common/models.py:268
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:267
+#: common/models.py:274
msgid "Group by Part"
msgstr ""
-#: common/models.py:268
+#: common/models.py:275
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:274
+#: common/models.py:281
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:275
+#: common/models.py:282
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:281
+#: common/models.py:288
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:282
+#: common/models.py:289
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:287
+#: common/models.py:294
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:288
+#: common/models.py:295
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:292
+#: common/models.py:299
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:293
+#: common/models.py:300
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:298
+#: common/models.py:305
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:299
+#: common/models.py:306
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:522
+#: common/models.py:529
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:524
+#: common/models.py:531
msgid "Settings value"
msgstr ""
-#: common/models.py:559
+#: common/models.py:566
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:582
+#: common/models.py:589
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:593
+#: common/models.py:600
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:616
+#: common/models.py:623
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:697 company/forms.py:132
+#: common/models.py:704 company/forms.py:177
msgid "Price break quantity"
msgstr ""
-#: common/models.py:705 company/templates/company/supplier_part_pricing.html:82
+#: common/models.py:712 company/templates/company/supplier_part_pricing.html:82
#: part/templates/part/sale_prices.html:90 templates/js/bom.js:255
msgid "Price"
msgstr ""
-#: common/models.py:706
+#: common/models.py:713
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:729
+#: common/models.py:736
msgid "Default"
msgstr ""
@@ -1656,224 +1739,253 @@ msgstr ""
msgid "Supplied value must be a boolean"
msgstr ""
-#: company/forms.py:37 company/models.py:143
-#: company/templates/company/detail.html:40
+#: company/forms.py:38 company/models.py:145
+#: company/templates/company/detail.html:42
msgid "Currency"
msgstr ""
-#: company/forms.py:38 company/models.py:145
+#: company/forms.py:39 company/models.py:147
msgid "Default currency used for this company"
msgstr ""
-#: company/forms.py:76 part/forms.py:46
+#: company/forms.py:77 part/forms.py:46
msgid "URL"
msgstr ""
-#: company/forms.py:77 part/forms.py:47
+#: company/forms.py:78 part/forms.py:47
msgid "Image URL"
msgstr ""
-#: company/forms.py:99
+#: company/forms.py:118
msgid "Single Price"
msgstr ""
-#: company/forms.py:101
+#: company/forms.py:120
msgid "Single quantity price"
msgstr ""
-#: company/models.py:100
-msgid "Company description"
-msgstr ""
-
-#: company/models.py:101
-msgid "Description of the company"
-msgstr ""
-
-#: company/models.py:105 company/templates/company/company_base.html:70
-#: company/templates/company/detail.html:31 templates/js/company.js:60
-msgid "Website"
-msgstr ""
-
-#: company/models.py:105
-msgid "Company website URL"
-msgstr ""
-
-#: company/models.py:108 company/templates/company/company_base.html:77
-msgid "Address"
-msgstr ""
-
-#: company/models.py:109
-msgid "Company address"
-msgstr ""
-
-#: company/models.py:112
-msgid "Phone number"
-msgstr ""
-
-#: company/models.py:113
-msgid "Contact phone number"
-msgstr ""
-
-#: company/models.py:116 company/templates/company/company_base.html:91
-msgid "Email"
-msgstr ""
-
-#: company/models.py:116
-msgid "Contact email address"
-msgstr ""
-
-#: company/models.py:119 company/templates/company/company_base.html:98
-msgid "Contact"
-msgstr ""
-
-#: company/models.py:120
-msgid "Point of contact"
-msgstr ""
-
-#: company/models.py:122 company/models.py:359 order/models.py:103
-#: part/models.py:743
-#: report/templates/report/inventree_build_order_base.html:165
-#: stock/models.py:1557 templates/js/company.js:208 templates/js/part.js:430
-msgid "Link"
-msgstr ""
-
-#: company/models.py:122
-msgid "Link to external company information"
-msgstr ""
-
-#: company/models.py:130 part/models.py:753
-msgid "Image"
-msgstr ""
-
-#: company/models.py:135
-msgid "is customer"
-msgstr ""
-
-#: company/models.py:135
-msgid "Do you sell items to this company?"
-msgstr ""
-
-#: company/models.py:137
-msgid "is supplier"
-msgstr ""
-
-#: company/models.py:137
-msgid "Do you purchase items from this company?"
-msgstr ""
-
-#: company/models.py:139
-msgid "is manufacturer"
-msgstr ""
-
-#: company/models.py:139
-msgid "Does this company manufacture parts?"
-msgstr ""
-
-#: company/models.py:319 stock/models.py:371
-#: stock/templates/stock/item_base.html:220
-msgid "Base Part"
-msgstr ""
-
-#: company/models.py:323 order/views.py:1372
-msgid "Select part"
-msgstr ""
-
-#: company/models.py:329 company/templates/company/detail.html:60
-#: company/templates/company/supplier_part_base.html:83
-#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:170
-#: stock/templates/stock/item_base.html:337 templates/js/company.js:48
-#: templates/js/company.js:164 templates/js/order.js:170
-msgid "Supplier"
-msgstr ""
-
-#: company/models.py:330
-msgid "Select supplier"
-msgstr ""
-
-#: company/models.py:335 company/templates/company/supplier_part_base.html:87
-#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:171
-msgid "SKU"
-msgstr ""
-
-#: company/models.py:336
-msgid "Supplier stock keeping unit"
-msgstr ""
-
-#: company/models.py:346 company/templates/company/detail.html:55
-#: company/templates/company/supplier_part_base.html:93
-#: company/templates/company/supplier_part_detail.html:34 part/bom.py:172
-#: templates/js/company.js:44 templates/js/company.js:188
-msgid "Manufacturer"
-msgstr ""
-
-#: company/models.py:347
+#: company/forms.py:128 company/models.py:324
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:353 company/templates/company/supplier_part_base.html:99
+#: company/forms.py:134 company/models.py:331
+msgid "Manufacturer Part Number"
+msgstr ""
+
+#: company/forms.py:136 company/models.py:330
+#: company/templates/company/manufacturer_part_base.html:89
+#: company/templates/company/manufacturer_part_detail.html:26
+#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:173
-#: templates/js/company.js:204
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
+#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
-#: company/models.py:354
-msgid "Manufacturer part number"
+#: company/models.py:102
+msgid "Company description"
msgstr ""
-#: company/models.py:360
+#: company/models.py:103
+msgid "Description of the company"
+msgstr ""
+
+#: company/models.py:107 company/templates/company/company_base.html:70
+#: company/templates/company/detail.html:33 templates/js/company.js:60
+msgid "Website"
+msgstr ""
+
+#: company/models.py:107
+msgid "Company website URL"
+msgstr ""
+
+#: company/models.py:110 company/templates/company/company_base.html:77
+msgid "Address"
+msgstr ""
+
+#: company/models.py:111
+msgid "Company address"
+msgstr ""
+
+#: company/models.py:114
+msgid "Phone number"
+msgstr ""
+
+#: company/models.py:115
+msgid "Contact phone number"
+msgstr ""
+
+#: company/models.py:118 company/templates/company/company_base.html:91
+msgid "Email"
+msgstr ""
+
+#: company/models.py:118
+msgid "Contact email address"
+msgstr ""
+
+#: company/models.py:121 company/templates/company/company_base.html:98
+msgid "Contact"
+msgstr ""
+
+#: company/models.py:122
+msgid "Point of contact"
+msgstr ""
+
+#: company/models.py:124 company/models.py:336 company/models.py:488
+#: order/models.py:103 part/models.py:743
+#: report/templates/report/inventree_build_order_base.html:165
+#: stock/models.py:1560 templates/js/company.js:188 templates/js/company.js:318
+#: templates/js/part.js:431
+msgid "Link"
+msgstr ""
+
+#: company/models.py:124
+msgid "Link to external company information"
+msgstr ""
+
+#: company/models.py:132 part/models.py:753
+msgid "Image"
+msgstr ""
+
+#: company/models.py:137
+msgid "is customer"
+msgstr ""
+
+#: company/models.py:137
+msgid "Do you sell items to this company?"
+msgstr ""
+
+#: company/models.py:139
+msgid "is supplier"
+msgstr ""
+
+#: company/models.py:139
+msgid "Do you purchase items from this company?"
+msgstr ""
+
+#: company/models.py:141
+msgid "is manufacturer"
+msgstr ""
+
+#: company/models.py:141
+msgid "Does this company manufacture parts?"
+msgstr ""
+
+#: company/models.py:308 company/models.py:459 stock/models.py:373
+#: stock/templates/stock/item_base.html:224
+msgid "Base Part"
+msgstr ""
+
+#: company/models.py:312 company/models.py:463 order/views.py:1384
+msgid "Select part"
+msgstr ""
+
+#: company/models.py:323 company/templates/company/detail.html:57
+#: company/templates/company/manufacturer_part_base.html:85
+#: company/templates/company/manufacturer_part_detail.html:25
+#: company/templates/company/supplier_part_base.html:94
+#: company/templates/company/supplier_part_detail.html:34 part/bom.py:170
+#: part/bom.py:241 stock/templates/stock/item_base.html:341
+#: templates/js/company.js:44 templates/js/company.js:165
+#: templates/js/company.js:289
+msgid "Manufacturer"
+msgstr ""
+
+#: company/models.py:337
+msgid "URL for external manufacturer part link"
+msgstr ""
+
+#: company/models.py:343
+msgid "Manufacturer part description"
+msgstr ""
+
+#: company/models.py:469 company/templates/company/detail.html:62
+#: company/templates/company/supplier_part_base.html:84
+#: company/templates/company/supplier_part_detail.html:25 order/models.py:190
+#: order/templates/order/order_base.html:92
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
+#: part/bom.py:286 stock/templates/stock/item_base.html:353
+#: templates/js/company.js:48 templates/js/company.js:263
+#: templates/js/order.js:170
+msgid "Supplier"
+msgstr ""
+
+#: company/models.py:470
+msgid "Select supplier"
+msgstr ""
+
+#: company/models.py:475 company/templates/company/supplier_part_base.html:88
+#: company/templates/company/supplier_part_detail.html:26
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
+#: part/bom.py:287
+msgid "SKU"
+msgstr ""
+
+#: company/models.py:476
+msgid "Supplier stock keeping unit"
+msgstr ""
+
+#: company/models.py:482
+#: company/templates/company/manufacturer_part_base.html:6
+#: company/templates/company/manufacturer_part_base.html:19
+#: stock/templates/stock/item_base.html:346
+msgid "Manufacturer Part"
+msgstr ""
+
+#: company/models.py:483
+msgid "Select manufacturer part"
+msgstr ""
+
+#: company/models.py:489
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:366
+#: company/models.py:495
msgid "Supplier part description"
msgstr ""
-#: company/models.py:371 company/templates/company/supplier_part_base.html:113
-#: company/templates/company/supplier_part_detail.html:38 part/models.py:2170
+#: company/models.py:500 company/templates/company/supplier_part_base.html:115
+#: company/templates/company/supplier_part_detail.html:38 part/models.py:2190
#: report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:375
+#: company/models.py:504
msgid "base cost"
msgstr ""
-#: company/models.py:375
+#: company/models.py:504
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:377 company/templates/company/supplier_part_base.html:106
-#: stock/models.py:395 stock/templates/stock/item_base.html:295
+#: company/models.py:506 company/templates/company/supplier_part_base.html:108
+#: stock/models.py:397 stock/templates/stock/item_base.html:299
#: templates/js/stock.js:667
msgid "Packaging"
msgstr ""
-#: company/models.py:377
+#: company/models.py:506
msgid "Part packaging"
msgstr ""
-#: company/models.py:379
+#: company/models.py:508
msgid "multiple"
msgstr ""
-#: company/models.py:379
+#: company/models.py:508
msgid "Order multiple"
msgstr ""
#: company/templates/company/assigned_stock.html:10
-#: company/templates/company/navbar.html:51
-#: company/templates/company/navbar.html:54 templates/js/build.js:411
+#: company/templates/company/navbar.html:62
+#: company/templates/company/navbar.html:65 templates/js/build.js:467
msgid "Assigned Stock"
msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:288 templates/js/company.js:33
+#: templates/InvenTree/search.html:304 templates/js/company.js:33
msgid "Company"
msgstr ""
@@ -1895,7 +2007,7 @@ msgstr ""
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56 company/views.py:324
+#: company/templates/company/company_base.html:56 company/views.py:326
msgid "Delete Company"
msgstr ""
@@ -1918,91 +2030,87 @@ msgstr ""
#, python-format
msgid ""
"There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be "
-"deleted."
+"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
#: company/templates/company/detail.html:21
msgid "Company Name"
msgstr ""
-#: company/templates/company/detail.html:34
+#: company/templates/company/detail.html:36
msgid "No website specified"
msgstr ""
-#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:45
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:65 order/models.py:440
-#: order/templates/order/sales_order_base.html:92 stock/models.py:413
-#: stock/models.py:414 stock/templates/stock/item_base.html:247
+#: company/templates/company/detail.html:67 order/models.py:450
+#: order/templates/order/sales_order_base.html:92 stock/models.py:415
+#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
msgid "Customer"
msgstr ""
-#: company/templates/company/detail_part.html:10
-#: templates/InvenTree/search.html:148
-msgid "Supplier Parts"
+#: company/templates/company/detail_manufacturer_part.html:11
+#: templates/InvenTree/search.html:149
+msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail_part.html:20
-#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
-msgid "Create new supplier part"
+#: company/templates/company/detail_manufacturer_part.html:22
+msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail_part.html:21
-#: order/templates/order/purchase_order_detail.html:74
-#: part/templates/part/supplier.html:17 templates/js/stock.js:1086
-msgid "New Supplier Part"
+#: company/templates/company/detail_manufacturer_part.html:23
+#: part/templates/part/manufacturer.html:19
+msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail_part.html:26
-#: part/templates/part/category.html:122 part/templates/part/supplier.html:20
+#: company/templates/company/detail_manufacturer_part.html:28
+#: company/templates/company/detail_supplier_part.html:27
+#: company/templates/company/manufacturer_part_suppliers.html:20
+#: part/templates/part/category.html:122
+#: part/templates/part/manufacturer.html:22
+#: part/templates/part/supplier.html:20
msgid "Options"
msgstr ""
-#: company/templates/company/detail_part.html:31
+#: company/templates/company/detail_manufacturer_part.html:33
+#: company/templates/company/detail_supplier_part.html:32
#: part/templates/part/category.html:127
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail_part.html:34
+#: company/templates/company/detail_manufacturer_part.html:36
+#: company/templates/company/detail_supplier_part.html:35
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail_part.html:34
+#: company/templates/company/detail_manufacturer_part.html:36
+#: company/templates/company/detail_supplier_part.html:35
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail_part.html:66
+#: company/templates/company/detail_manufacturer_part.html:66
+#: company/templates/company/detail_supplier_part.html:66
#: part/templates/part/bom.html:159 part/templates/part/category.html:118
-#: templates/js/stock.js:1080
+#: templates/js/stock.js:1157
msgid "New Part"
msgstr ""
-#: company/templates/company/detail_part.html:67
+#: company/templates/company/detail_manufacturer_part.html:67
+#: company/templates/company/detail_supplier_part.html:67
msgid "Create new Part"
msgstr ""
-#: company/templates/company/detail_part.html:72 company/views.py:62
-#: order/templates/order/purchase_orders.html:183
-#: part/templates/part/supplier.html:50
-msgid "New Supplier"
-msgstr ""
-
-#: company/templates/company/detail_part.html:73 company/views.py:279
-#: order/templates/order/purchase_orders.html:184
-msgid "Create new Supplier"
-msgstr ""
-
-#: company/templates/company/detail_part.html:78 company/views.py:69
+#: company/templates/company/detail_manufacturer_part.html:72
+#: company/views.py:71 part/templates/part/manufacturer.html:52
#: part/templates/part/supplier.html:56
msgid "New Manufacturer"
msgstr ""
-#: company/templates/company/detail_part.html:79 company/views.py:282
+#: company/templates/company/detail_manufacturer_part.html:73
+#: company/views.py:284
msgid "Create new Manufacturer"
msgstr ""
@@ -2017,68 +2125,172 @@ msgstr ""
msgid "Export"
msgstr ""
-#: company/templates/company/index.html:7
+#: company/templates/company/detail_supplier_part.html:11
+#: company/templates/company/manufacturer_part_navbar.html:11
+#: company/templates/company/manufacturer_part_suppliers.html:10
+#: templates/InvenTree/search.html:164
+msgid "Supplier Parts"
+msgstr ""
+
+#: company/templates/company/detail_supplier_part.html:21
+#: order/templates/order/order_wizard/select_parts.html:42
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Create new supplier part"
+msgstr ""
+
+#: company/templates/company/detail_supplier_part.html:22
+#: company/templates/company/manufacturer_part_suppliers.html:17
+#: order/templates/order/purchase_order_detail.html:49
+#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
+msgid "New Supplier Part"
+msgstr ""
+
+#: company/templates/company/detail_supplier_part.html:72
+#: company/templates/company/manufacturer_part_suppliers.html:47
+#: company/views.py:64 order/templates/order/purchase_orders.html:183
+#: part/templates/part/supplier.html:50
+msgid "New Supplier"
+msgstr ""
+
+#: company/templates/company/detail_supplier_part.html:73 company/views.py:281
+#: order/templates/order/purchase_orders.html:184
+msgid "Create new Supplier"
+msgstr ""
+
+#: company/templates/company/index.html:8
msgid "Supplier List"
msgstr ""
-#: company/templates/company/navbar.html:20
-msgid "Supplied Parts"
+#: company/templates/company/manufacturer_part_base.html:36
+#: company/templates/company/supplier_part_base.html:36
+#: company/templates/company/supplier_part_orders.html:17
+#: part/templates/part/orders.html:17 part/templates/part/part_base.html:65
+msgid "Order part"
msgstr ""
-#: company/templates/company/navbar.html:23
-#: order/templates/order/receive_parts.html:14 part/models.py:322
-#: part/templates/part/cat_link.html:7 part/templates/part/category.html:95
-#: part/templates/part/category_navbar.html:11
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_partlist.html:10
-#: templates/InvenTree/index.html:96 templates/InvenTree/search.html:113
-#: templates/InvenTree/settings/tabs.html:25 templates/navbar.html:23
-#: templates/stats.html:59 templates/stats.html:68 users/models.py:38
-msgid "Parts"
+#: company/templates/company/manufacturer_part_base.html:41
+msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/navbar.html:27 part/templates/part/navbar.html:33
-#: stock/templates/stock/location.html:100
-#: stock/templates/stock/location.html:115 templates/InvenTree/search.html:182
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
-msgid "Stock Items"
+#: company/templates/company/manufacturer_part_base.html:45
+msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/navbar.html:30
-#: company/templates/company/part_navbar.html:14
-#: part/templates/part/navbar.html:36 stock/templates/stock/loc_link.html:7
-#: stock/templates/stock/location.html:29
-#: stock/templates/stock/stock_app_base.html:9
-#: templates/InvenTree/index.html:127 templates/InvenTree/search.html:180
-#: templates/InvenTree/search.html:216
-#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:172
-#: templates/js/part.js:397 templates/js/stock.js:563 templates/navbar.html:26
+#: company/templates/company/manufacturer_part_base.html:57
+#: company/templates/company/manufacturer_part_detail.html:10
+msgid "Manufacturer Part Details"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_base.html:62
+#: company/templates/company/manufacturer_part_detail.html:18
+#: company/templates/company/supplier_part_base.html:61
+#: company/templates/company/supplier_part_detail.html:18
+msgid "Internal Part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_delete.html:6
+msgid "Are you sure you want to delete the following Manufacturer Parts?"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_delete.html:36
+#, python-format
+msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_navbar.html:14
+#: company/views.py:63 part/templates/part/navbar.html:78
+#: part/templates/part/navbar.html:81 templates/InvenTree/search.html:316
+#: templates/navbar.html:35
+msgid "Suppliers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_navbar.html:19
+msgid "Manufacturer Part Stock"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_navbar.html:22
+#: company/templates/company/navbar.html:41
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/navbar.html:36 stock/api.py:51
+#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/index.html:128 templates/InvenTree/search.html:196
+#: templates/InvenTree/search.html:232
+#: templates/InvenTree/settings/tabs.html:28 templates/js/part.js:173
+#: templates/js/part.js:398 templates/js/stock.js:563 templates/navbar.html:26
msgid "Stock"
msgstr ""
-#: company/templates/company/navbar.html:36
-#: company/templates/company/navbar.html:45
-#: company/templates/company/navbar.html:48
+#: company/templates/company/manufacturer_part_navbar.html:26
+msgid "Manufacturer Part Orders"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_navbar.html:29
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:22
+#: part/templates/part/supplier.html:22
+msgid "Delete supplier parts"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:22
+#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
+#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
+#: stock/views.py:1002 users/models.py:187
+msgid "Delete"
+msgstr ""
+
+#: company/templates/company/manufacturer_part_suppliers.html:48
+#: part/templates/part/supplier.html:51
+msgid "Create new supplier"
+msgstr ""
+
+#: company/templates/company/navbar.html:20
+#: company/templates/company/navbar.html:23
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/navbar.html:29
+#: company/templates/company/navbar.html:32
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/navbar.html:38 part/templates/part/navbar.html:33
+#: stock/templates/stock/location.html:107
+#: stock/templates/stock/location.html:122
+#: stock/templates/stock/location.html:136
+#: stock/templates/stock/location_navbar.html:22
+#: stock/templates/stock/location_navbar.html:29
+#: templates/InvenTree/search.html:198 templates/js/stock.js:968
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
+msgid "Stock Items"
+msgstr ""
+
+#: company/templates/company/navbar.html:47
+#: company/templates/company/navbar.html:56
+#: company/templates/company/navbar.html:59
#: company/templates/company/sales_orders.html:11
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:13
-#: part/templates/part/navbar.html:92 part/templates/part/navbar.html:95
-#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:227
-#: templates/InvenTree/search.html:330
+#: part/templates/part/navbar.html:98 part/templates/part/navbar.html:101
+#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
+#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/navbar.html:39
+#: company/templates/company/navbar.html:50
#: company/templates/company/purchase_orders.html:10
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/navbar.html:78 part/templates/part/navbar.html:81
-#: part/templates/part/orders.html:10 templates/InvenTree/index.html:204
-#: templates/InvenTree/search.html:300
+#: part/templates/part/navbar.html:84 part/templates/part/navbar.html:87
+#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
+#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr ""
@@ -2086,32 +2298,6 @@ msgstr ""
msgid "Company Notes"
msgstr ""
-#: company/templates/company/part_navbar.html:11
-#: company/templates/company/supplier_part_stock.html:10
-msgid "Supplier Part Stock"
-msgstr ""
-
-#: company/templates/company/part_navbar.html:18
-#: company/templates/company/supplier_part_orders.html:10
-msgid "Supplier Part Orders"
-msgstr ""
-
-#: company/templates/company/part_navbar.html:21
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/part_navbar.html:25
-msgid "Supplier Part Pricing"
-msgstr ""
-
-#: company/templates/company/part_navbar.html:28
-msgid "Pricing"
-msgstr ""
-
-#: company/templates/company/partdelete.html:5
-msgid "Are you sure you want to delete the following Supplier Parts?"
-msgstr ""
-
#: company/templates/company/purchase_orders.html:18
#: order/templates/order/purchase_orders.html:20
msgid "Create new purchase order"
@@ -2132,34 +2318,45 @@ msgstr ""
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/supplier_part_base.html:6
-#: company/templates/company/supplier_part_base.html:19 stock/models.py:380
-#: stock/templates/stock/item_base.html:342 templates/js/company.js:180
+#: company/templates/company/supplier_part_base.html:7
+#: company/templates/company/supplier_part_base.html:20 stock/models.py:382
+#: stock/templates/stock/item_base.html:358 templates/js/company.js:279
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part_base.html:35
-#: company/templates/company/supplier_part_orders.html:17
-#: part/templates/part/orders.html:17 part/templates/part/part_base.html:64
-msgid "Order part"
-msgstr ""
-
-#: company/templates/company/supplier_part_base.html:39
+#: company/templates/company/supplier_part_base.html:40
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part_base.html:43
+#: company/templates/company/supplier_part_base.html:44
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part_base.html:55
+#: company/templates/company/supplier_part_base.html:56
#: company/templates/company/supplier_part_detail.html:10
msgid "Supplier Part Details"
msgstr ""
-#: company/templates/company/supplier_part_base.html:60
-#: company/templates/company/supplier_part_detail.html:18
-msgid "Internal Part"
+#: company/templates/company/supplier_part_delete.html:5
+msgid "Are you sure you want to delete the following Supplier Parts?"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:12
+#: company/templates/company/supplier_part_stock.html:10
+msgid "Supplier Part Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:19
+#: company/templates/company/supplier_part_orders.html:10
+msgid "Supplier Part Orders"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:26
+msgid "Supplier Part Pricing"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:29
+msgid "Pricing"
msgstr ""
#: company/templates/company/supplier_part_orders.html:18
@@ -2171,8 +2368,8 @@ msgstr ""
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part_pricing.html:19 company/views.py:569
-#: part/templates/part/sale_prices.html:17 part/views.py:2618
+#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr ""
@@ -2191,99 +2388,106 @@ msgstr ""
msgid "Delete price break"
msgstr ""
-#: company/views.py:61 part/templates/part/navbar.html:72
-#: part/templates/part/navbar.html:75 templates/InvenTree/search.html:291
-#: templates/navbar.html:35
-msgid "Suppliers"
-msgstr ""
-
-#: company/views.py:68 templates/InvenTree/search.html:308
+#: company/views.py:70 part/templates/part/navbar.html:72
+#: part/templates/part/navbar.html:75 templates/InvenTree/search.html:306
#: templates/navbar.html:36
msgid "Manufacturers"
msgstr ""
-#: company/views.py:75 templates/InvenTree/search.html:321
+#: company/views.py:77 templates/InvenTree/search.html:336
#: templates/navbar.html:45
msgid "Customers"
msgstr ""
-#: company/views.py:76 order/templates/order/sales_orders.html:185
+#: company/views.py:78 order/templates/order/sales_orders.html:185
msgid "New Customer"
msgstr ""
-#: company/views.py:84
+#: company/views.py:86
msgid "Companies"
msgstr ""
-#: company/views.py:85
+#: company/views.py:87
msgid "New Company"
msgstr ""
-#: company/views.py:167 part/views.py:848
+#: company/views.py:169 part/views.py:848
msgid "Download Image"
msgstr ""
-#: company/views.py:196 part/views.py:880
+#: company/views.py:198 part/views.py:880
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:212 part/views.py:896
+#: company/views.py:214 part/views.py:896
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: company/views.py:241
+#: company/views.py:243
msgid "Update Company Image"
msgstr ""
-#: company/views.py:247
+#: company/views.py:249
msgid "Updated company image"
msgstr ""
-#: company/views.py:257
+#: company/views.py:259
msgid "Edit Company"
msgstr ""
-#: company/views.py:262
+#: company/views.py:264
msgid "Edited company information"
msgstr ""
-#: company/views.py:285 order/templates/order/sales_orders.html:186
+#: company/views.py:287 order/templates/order/sales_orders.html:186
msgid "Create new Customer"
msgstr ""
-#: company/views.py:287
+#: company/views.py:289
msgid "Create new Company"
msgstr ""
-#: company/views.py:314
+#: company/views.py:316
msgid "Created new company"
msgstr ""
-#: company/views.py:330
+#: company/views.py:332
msgid "Company was deleted"
msgstr ""
-#: company/views.py:355
+#: company/views.py:357
+msgid "Edit Manufacturer Part"
+msgstr ""
+
+#: company/views.py:366
+msgid "Create New Manufacturer Part"
+msgstr ""
+
+#: company/views.py:440
+msgid "Delete Manufacturer Part"
+msgstr ""
+
+#: company/views.py:528
msgid "Edit Supplier Part"
msgstr ""
-#: company/views.py:378 templates/js/stock.js:1087
+#: company/views.py:578 templates/js/stock.js:1164
msgid "Create new Supplier Part"
msgstr ""
-#: company/views.py:497
+#: company/views.py:722
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:574 part/views.py:2622
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr ""
-#: company/views.py:630 part/views.py:2666
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:645 part/views.py:2680
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr ""
@@ -2331,11 +2535,11 @@ msgstr ""
msgid "Label height, specified in mm"
msgstr ""
-#: label/models.py:222 label/models.py:273
+#: label/models.py:222 label/models.py:275
msgid "Query filters (comma-separated list of key=value pairs"
msgstr ""
-#: label/models.py:223 label/models.py:274 report/models.py:294
+#: label/models.py:223 label/models.py:276 report/models.py:294
#: report/models.py:415 report/models.py:449
msgid "Filters"
msgstr ""
@@ -2373,9 +2577,8 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:452
-msgid ""
-"Target date for order completion. Order will be overdue after this date."
+#: order/forms.py:145 order/models.py:462
+msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/forms.py:235
@@ -2410,7 +2613,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr ""
@@ -2444,16 +2647,15 @@ msgid "Target Delivery Date"
msgstr ""
#: order/models.py:213
-msgid ""
-"Expected date for order delivery. Order will be overdue after this date."
+msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
#: order/models.py:219
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:950
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2461,120 +2663,128 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:359
+#: order/models.py:348
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:350
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:369
msgid "Received items"
msgstr ""
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr ""
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr ""
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr ""
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr ""
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:309 templates/js/order.js:148
+#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr ""
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr ""
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:207
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr ""
-#: order/models.py:648 stock/models.py:506
-#: stock/templates/stock/item_base.html:316
+#: order/models.py:658 stock/models.py:508
+#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr ""
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr ""
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr ""
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2622,18 +2832,38 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr ""
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
#: order/templates/order/order_complete.html:7
msgid "Mark this order as complete?"
msgstr ""
-#: order/templates/order/order_issue.html:7
-msgid ""
-"After placing this purchase order, line items will no longer be editable."
+#: order/templates/order/order_complete.html:10
+msgid "This order has line items which have not been marked as received."
+msgstr ""
+
+#: order/templates/order/order_complete.html:11
+msgid "Completing this order means that the order and line items will no longer be editable."
+msgstr ""
+
+#: order/templates/order/order_issue.html:8
+msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
#: order/templates/order/order_notes.html:13
@@ -2657,7 +2887,8 @@ msgid "Select Supplier"
msgstr ""
#: order/templates/order/order_wizard/select_parts.html:57
-msgid "Select a supplier for"
+#, python-format
+msgid "Select a supplier for %(name)s"
msgstr ""
#: order/templates/order/order_wizard/select_parts.html:69
@@ -2683,11 +2914,13 @@ msgid "Select Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:45
-msgid "Create new purchase order for {{ supplier.name }}"
+#, python-format
+msgid "Create new purchase order for %(name)s"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:68
-msgid "Select a purchase order for"
+#, python-format
+msgid "Select a purchase order for %(name)s"
msgstr ""
#: order/templates/order/po_attachments.html:12
@@ -2709,43 +2942,29 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:197 part/templates/part/category.html:239
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1092
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:35
-msgid "Create new stock location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:198
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:239
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:240
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:245
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr ""
@@ -2755,7 +2974,21 @@ msgid "Print Order Reports"
msgstr ""
#: order/templates/order/receive_parts.html:8
-msgid "Receive outstanding parts for"
+#, python-format
+msgid "Receive outstanding parts for %(order)s - %(desc)s"
+msgstr ""
+
+#: order/templates/order/receive_parts.html:14 part/api.py:40
+#: part/models.py:322 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:99
+#: part/templates/part/category_navbar.html:22
+#: part/templates/part/category_navbar.html:29
+#: part/templates/part/category_partlist.html:10
+#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
+#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
+#: users/models.py:40
+msgid "Parts"
msgstr ""
#: order/templates/order/receive_parts.html:15
@@ -2767,7 +3000,7 @@ msgid "Order Code"
msgstr ""
#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:128 templates/js/part.js:413
+#: part/templates/part/part_base.html:129 templates/js/part.js:414
msgid "On Order"
msgstr ""
@@ -2807,30 +3040,26 @@ msgstr ""
msgid "Warning"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:75
-#: order/templates/order/sales_order_detail.html:157
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:418 stock/templates/stock/item_base.html:234
-#: templates/js/build.js:418
-msgid "Serial Number"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:338
-#: templates/js/build.js:571 templates/js/build.js:984
+#: order/templates/order/sales_order_detail.html:92 templates/js/bom.js:342
+#: templates/js/build.js:627 templates/js/build.js:1044
msgid "Actions"
msgstr ""
-#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:459
-#: templates/js/build.js:789
+#: order/templates/order/sales_order_detail.html:99 templates/js/build.js:515
+#: templates/js/build.js:849
msgid "Edit stock allocation"
msgstr ""
-#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:461
-#: templates/js/build.js:790
+#: order/templates/order/sales_order_detail.html:100 templates/js/build.js:517
+#: templates/js/build.js:850
msgid "Delete stock allocation"
msgstr ""
@@ -2842,8 +3071,8 @@ msgstr ""
msgid "ID"
msgstr ""
-#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:523
-#: templates/js/build.js:785
+#: order/templates/order/sales_order_detail.html:229 templates/js/build.js:579
+#: templates/js/build.js:845
msgid "Allocated"
msgstr ""
@@ -2855,7 +3084,7 @@ msgstr ""
msgid "Allocate serial numbers"
msgstr ""
-#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:585
+#: order/templates/order/sales_order_detail.html:282 templates/js/build.js:641
msgid "Allocate stock"
msgstr ""
@@ -2863,8 +3092,8 @@ msgstr ""
msgid "Purchase stock"
msgstr ""
-#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:578
-#: templates/js/build.js:992
+#: order/templates/order/sales_order_detail.html:289 templates/js/build.js:634
+#: templates/js/build.js:1052
msgid "Build stock"
msgstr ""
@@ -2877,9 +3106,7 @@ msgid "Sales Order Notes"
msgstr ""
#: order/templates/order/sales_order_ship.html:10
-msgid ""
-"This order has not been fully allocated. If the order is marked as shipped, "
-"it can no longer be adjusted."
+msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
msgstr ""
#: order/templates/order/sales_order_ship.html:12
@@ -3011,87 +3238,87 @@ msgstr ""
msgid "No lines specified"
msgstr ""
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr ""
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr ""
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr ""
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr ""
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr ""
#: part/bom.py:138 part/models.py:72 part/models.py:762
-#: part/templates/part/category.html:62 part/templates/part/detail.html:90
+#: part/templates/part/category.html:66 part/templates/part/detail.html:90
msgid "Default Location"
msgstr ""
-#: part/bom.py:139 part/templates/part/part_base.html:116
+#: part/bom.py:139 part/templates/part/part_base.html:117
msgid "Available Stock"
msgstr ""
-#: part/bom.py:278
+#: part/bom.py:379
#, python-brace-format
msgid "Unsupported file format: {f}"
msgstr ""
-#: part/bom.py:283
+#: part/bom.py:384
msgid "Error reading BOM file (invalid data)"
msgstr ""
-#: part/bom.py:285
+#: part/bom.py:386
msgid "Error reading BOM file (incorrect row size)"
msgstr ""
@@ -3136,94 +3363,102 @@ msgid "Include part stock data in exported BOM"
msgstr ""
#: part/forms.py:99
-msgid "Include Supplier Data"
+msgid "Include Manufacturer Data"
msgstr ""
#: part/forms.py:99
+msgid "Include part manufacturer data in exported BOM"
+msgstr ""
+
+#: part/forms.py:101
+msgid "Include Supplier Data"
+msgstr ""
+
+#: part/forms.py:101
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:120 part/models.py:2057
+#: part/forms.py:122 part/models.py:2077
msgid "Parent Part"
msgstr ""
-#: part/forms.py:121 part/templates/part/bom_duplicate.html:7
+#: part/forms.py:123 part/templates/part/bom_duplicate.html:7
msgid "Select parent part to copy BOM from"
msgstr ""
-#: part/forms.py:127
+#: part/forms.py:129
msgid "Clear existing BOM items"
msgstr ""
-#: part/forms.py:133
+#: part/forms.py:135
msgid "Confirm BOM duplication"
msgstr ""
-#: part/forms.py:151
+#: part/forms.py:153
msgid "validate"
msgstr ""
-#: part/forms.py:151
+#: part/forms.py:153
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:163
+#: part/forms.py:165
msgid "BOM file"
msgstr ""
-#: part/forms.py:163
+#: part/forms.py:165
msgid "Select BOM file to upload"
msgstr ""
-#: part/forms.py:182
+#: part/forms.py:184
msgid "Related Part"
msgstr ""
-#: part/forms.py:201
+#: part/forms.py:203
msgid "Select part category"
msgstr ""
-#: part/forms.py:218
+#: part/forms.py:220
msgid "Duplicate all BOM data for this part"
msgstr ""
-#: part/forms.py:219
+#: part/forms.py:221
msgid "Copy BOM"
msgstr ""
-#: part/forms.py:224
+#: part/forms.py:226
msgid "Duplicate all parameter data for this part"
msgstr ""
-#: part/forms.py:225
+#: part/forms.py:227
msgid "Copy Parameters"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:232
msgid "Confirm part creation"
msgstr ""
-#: part/forms.py:235
+#: part/forms.py:237
msgid "Include category parameter templates"
msgstr ""
-#: part/forms.py:240
+#: part/forms.py:242
msgid "Include parent categories parameter templates"
msgstr ""
-#: part/forms.py:320
+#: part/forms.py:322
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:324
+#: part/forms.py:326
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:342 part/models.py:2151
+#: part/forms.py:344 part/models.py:2171
msgid "Sub part"
msgstr ""
-#: part/forms.py:370
+#: part/forms.py:372
msgid "Input quantity for price calculation"
msgstr ""
@@ -3239,15 +3474,15 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:82 part/models.py:2103
-#: part/templates/part/part_app_base.html:9
+#: part/models.py:82 part/models.py:2123
+#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:83 part/templates/part/category.html:19
-#: part/templates/part/category.html:90 part/templates/part/category.html:141
-#: templates/InvenTree/search.html:126 templates/stats.html:63
-#: users/models.py:37
+#: part/models.py:83 part/templates/part/category.html:23
+#: part/templates/part/category.html:94 part/templates/part/category.html:141
+#: templates/InvenTree/search.html:127 templates/stats.html:63
+#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3300,7 +3535,7 @@ msgstr ""
msgid "Part description"
msgstr ""
-#: part/models.py:716 part/templates/part/category.html:69
+#: part/models.py:716 part/templates/part/category.html:73
#: part/templates/part/detail.html:67
msgid "Keywords"
msgstr ""
@@ -3309,8 +3544,8 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:724 part/models.py:2102 part/templates/part/detail.html:73
-#: part/templates/part/set_category.html:15 templates/js/part.js:384
+#: part/models.py:724 part/models.py:2122 part/templates/part/detail.html:73
+#: part/templates/part/set_category.html:15 templates/js/part.js:385
msgid "Category"
msgstr ""
@@ -3319,7 +3554,7 @@ msgid "Part category"
msgstr ""
#: part/models.py:730 part/templates/part/detail.html:28
-#: part/templates/part/part_base.html:93 templates/js/part.js:160
+#: part/templates/part/part_base.html:94 templates/js/part.js:161
msgid "IPN"
msgstr ""
@@ -3332,7 +3567,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:738 part/templates/part/detail.html:35 report/models.py:198
-#: templates/js/part.js:164
+#: templates/js/part.js:165
msgid "Revision"
msgstr ""
@@ -3364,7 +3599,7 @@ msgstr ""
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:828 part/models.py:2031 part/templates/part/detail.html:106
+#: part/models.py:828 part/models.py:2051 part/templates/part/detail.html:106
#: part/templates/part/params.html:29
msgid "Units"
msgstr ""
@@ -3395,7 +3630,7 @@ msgstr ""
#: part/models.py:861 part/templates/part/detail.html:227
#: templates/js/table_filters.js:20 templates/js/table_filters.js:60
-#: templates/js/table_filters.js:214 templates/js/table_filters.js:283
+#: templates/js/table_filters.js:236 templates/js/table_filters.js:305
msgid "Active"
msgstr ""
@@ -3431,170 +3666,168 @@ msgstr ""
msgid "Creation User"
msgstr ""
-#: part/models.py:1929
+#: part/models.py:1949
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:1946
+#: part/models.py:1966
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:1966 templates/js/part.js:561 templates/js/stock.js:104
+#: part/models.py:1986 templates/js/part.js:638 templates/js/stock.js:104
msgid "Test Name"
msgstr ""
-#: part/models.py:1967
+#: part/models.py:1987
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:1972
+#: part/models.py:1992
msgid "Test Description"
msgstr ""
-#: part/models.py:1973
+#: part/models.py:1993
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:1978 templates/js/part.js:570
-#: templates/js/table_filters.js:200
+#: part/models.py:1998 templates/js/part.js:647
+#: templates/js/table_filters.js:222
msgid "Required"
msgstr ""
-#: part/models.py:1979
+#: part/models.py:1999
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:1984 templates/js/part.js:578
+#: part/models.py:2004 templates/js/part.js:655
msgid "Requires Value"
msgstr ""
-#: part/models.py:1985
+#: part/models.py:2005
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:1990 templates/js/part.js:585
+#: part/models.py:2010 templates/js/part.js:662
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:1991
+#: part/models.py:2011
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2024
+#: part/models.py:2044
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2029
+#: part/models.py:2049
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2031
+#: part/models.py:2051
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2059 part/models.py:2108 part/models.py:2109
+#: part/models.py:2079 part/models.py:2128 part/models.py:2129
#: templates/InvenTree/settings/category.html:62
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2061
+#: part/models.py:2081
msgid "Data"
msgstr ""
-#: part/models.py:2061
+#: part/models.py:2081
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2113 templates/InvenTree/settings/category.html:67
+#: part/models.py:2133 templates/InvenTree/settings/category.html:67
msgid "Default Value"
msgstr ""
-#: part/models.py:2114
+#: part/models.py:2134
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2163
msgid "Select parent part"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2172
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2178
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2160 templates/js/bom.js:216 templates/js/bom.js:269
+#: part/models.py:2180 templates/js/bom.js:216 templates/js/bom.js:269
msgid "Optional"
msgstr ""
-#: part/models.py:2160
+#: part/models.py:2180
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2163
+#: part/models.py:2183
msgid "Overage"
msgstr ""
-#: part/models.py:2164
+#: part/models.py:2184
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2167
+#: part/models.py:2187
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2170
+#: part/models.py:2190
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2192
msgid "Checksum"
msgstr ""
-#: part/models.py:2172
+#: part/models.py:2192
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2176 templates/js/bom.js:275 templates/js/bom.js:282
+#: part/models.py:2196 templates/js/bom.js:279 templates/js/bom.js:286
#: templates/js/table_filters.js:50
msgid "Inherited"
msgstr ""
-#: part/models.py:2177
+#: part/models.py:2197
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2253 part/views.py:1592 part/views.py:1644
+#: part/models.py:2273 part/views.py:1592 part/views.py:1644
#: stock/models.py:260
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2262 part/models.py:2264
+#: part/models.py:2282 part/models.py:2284
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2267
+#: part/models.py:2287
msgid "BOM Item"
msgstr ""
-#: part/models.py:2384
+#: part/models.py:2404
msgid "Part 1"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2408
msgid "Part 2"
msgstr ""
-#: part/models.py:2388
+#: part/models.py:2408
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2420
-msgid ""
-"Error creating relationship: check that the part is not related to itself "
-"and that the relationship is unique"
+#: part/models.py:2440
+msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
#: part/templates/part/allocation.html:11
@@ -3625,8 +3858,7 @@ msgstr ""
#: part/templates/part/bom.html:21
#, python-format
-msgid ""
-"The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
+msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
#: part/templates/part/bom.html:25
@@ -3662,7 +3894,7 @@ msgstr ""
msgid "Validate Bill of Materials"
msgstr ""
-#: part/templates/part/bom.html:61 part/views.py:1883
+#: part/templates/part/bom.html:61 part/views.py:1887
msgid "Export Bill of Materials"
msgstr ""
@@ -3679,7 +3911,7 @@ msgid "All selected BOM items will be deleted"
msgstr ""
#: part/templates/part/bom.html:160 part/views.py:584
-#: templates/js/stock.js:1081
+#: templates/js/stock.js:1158
msgid "Create New Part"
msgstr ""
@@ -3761,8 +3993,7 @@ msgid "Requirements for BOM upload"
msgstr ""
#: part/templates/part/bom_upload/upload_file.html:21
-msgid ""
-"The BOM file must contain the required named columns as provided in the "
+msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
#: part/templates/part/bom_upload/upload_file.html:21
@@ -3779,8 +4010,7 @@ msgstr ""
#: part/templates/part/bom_validate.html:6
#, python-format
-msgid ""
-"Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
+msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
msgstr ""
#: part/templates/part/bom_validate.html:9
@@ -3795,39 +4025,42 @@ msgstr ""
msgid "Start New Build"
msgstr ""
-#: part/templates/part/category.html:20
+#: part/templates/part/category.html:24
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:25 part/views.py:2264
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:31
+#: part/templates/part/category.html:35
msgid "Edit part category"
msgstr ""
-#: part/templates/part/category.html:36
+#: part/templates/part/category.html:40
msgid "Delete part category"
msgstr ""
-#: part/templates/part/category.html:46 part/templates/part/category.html:85
+#: part/templates/part/category.html:50 part/templates/part/category.html:89
msgid "Category Details"
msgstr ""
-#: part/templates/part/category.html:51
+#: part/templates/part/category.html:55
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:56
+#: part/templates/part/category.html:60
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:75
+#: part/templates/part/category.html:79
+#: part/templates/part/category_navbar.html:11
+#: part/templates/part/category_navbar.html:18
+#: part/templates/part/subcategory.html:16
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:80
+#: part/templates/part/category.html:84
msgid "Parts (Including subcategories)"
msgstr ""
@@ -3847,24 +4080,24 @@ msgstr ""
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:198
+#: part/templates/part/category.html:186
#: stock/templates/stock/location.html:192 templates/js/stock.js:709
msgid "Create new location"
msgstr ""
-#: part/templates/part/category.html:203 part/templates/part/category.html:233
+#: part/templates/part/category.html:191 part/templates/part/category.html:221
msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:204
+#: part/templates/part/category.html:192
msgid "Create new category"
msgstr ""
-#: part/templates/part/category.html:234
+#: part/templates/part/category.html:222
msgid "Create new Part Category"
msgstr ""
-#: part/templates/part/category.html:240 stock/views.py:1359
+#: part/templates/part/category.html:228 stock/views.py:1359
msgid "Create new Stock Location"
msgstr ""
@@ -3873,17 +4106,12 @@ msgid "Are you sure you want to delete category"
msgstr ""
#: part/templates/part/category_delete.html:8
-#: part/templates/part/category_delete.html:25
-msgid "This category contains"
-msgstr ""
-
-#: part/templates/part/category_delete.html:8
-msgid "child categories"
+#, python-format
+msgid "This category contains %(count)s child categories"
msgstr ""
#: part/templates/part/category_delete.html:9
-msgid ""
-"If this category is deleted, these child categories will be moved to the"
+msgid "If this category is deleted, these child categories will be moved to the"
msgstr ""
#: part/templates/part/category_delete.html:11
@@ -3895,22 +4123,21 @@ msgid "top level Parts category"
msgstr ""
#: part/templates/part/category_delete.html:25
-msgid "parts"
+#, python-format
+msgid "This category contains %(count)s parts"
msgstr ""
#: part/templates/part/category_delete.html:27
-msgid ""
-"If this category is deleted, these parts will be moved to the parent category"
+#, python-format
+msgid "If this category is deleted, these parts will be moved to the parent category %(path)s"
msgstr ""
#: part/templates/part/category_delete.html:29
-msgid ""
-"If this category is deleted, these parts will be moved to the top-level "
-"category Teile"
+msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:18
-#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:34
+#: part/templates/part/category_navbar.html:37
#: part/templates/part/navbar.html:22
msgid "Parameters"
msgstr ""
@@ -3925,7 +4152,8 @@ msgid "Duplicate Part"
msgstr ""
#: part/templates/part/copy_part.html:10
-msgid "Make a copy of part"
+#, python-format
+msgid "Make a copy of part '%(full_name)s'."
msgstr ""
#: part/templates/part/copy_part.html:14
@@ -3938,8 +4166,9 @@ msgstr ""
msgid "The new part may be a duplicate of these existing parts"
msgstr ""
-#: part/templates/part/create_part.html:16
-msgid "match"
+#: part/templates/part/create_part.html:17
+#, python-format
+msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:11 part/templates/part/navbar.html:11
@@ -4022,6 +4251,19 @@ msgstr ""
msgid "Part is not active"
msgstr ""
+#: part/templates/part/manufacturer.html:11
+msgid "Part Manufacturers"
+msgstr ""
+
+#: part/templates/part/manufacturer.html:24
+msgid "Delete manufacturer parts"
+msgstr ""
+
+#: part/templates/part/manufacturer.html:53
+#: part/templates/part/supplier.html:57
+msgid "Create new manufacturer"
+msgstr ""
+
#: part/templates/part/navbar.html:26 part/templates/part/variants.html:11
msgid "Part Variants"
msgstr ""
@@ -4042,28 +4284,28 @@ msgstr ""
msgid "Used In"
msgstr ""
-#: part/templates/part/navbar.html:86
+#: part/templates/part/navbar.html:92
msgid "Sales Price Information"
msgstr ""
-#: part/templates/part/navbar.html:89
+#: part/templates/part/navbar.html:95
msgid "Sale Price"
msgstr ""
-#: part/templates/part/navbar.html:100 part/templates/part/part_tests.html:10
+#: part/templates/part/navbar.html:106 part/templates/part/part_tests.html:10
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/navbar.html:103 stock/templates/stock/item_base.html:382
+#: part/templates/part/navbar.html:109 stock/templates/stock/item_base.html:398
msgid "Tests"
msgstr ""
-#: part/templates/part/navbar.html:107 part/templates/part/navbar.html:110
+#: part/templates/part/navbar.html:113 part/templates/part/navbar.html:116
#: part/templates/part/related.html:10
msgid "Related Parts"
msgstr ""
-#: part/templates/part/navbar.html:119 part/templates/part/notes.html:12
+#: part/templates/part/navbar.html:125 part/templates/part/notes.html:12
msgid "Part Notes"
msgstr ""
@@ -4079,7 +4321,7 @@ msgstr ""
#: part/templates/part/params.html:28
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1652 templates/InvenTree/settings/header.html:8
+#: stock/models.py:1655 templates/InvenTree/settings/header.html:8
#: templates/js/stock.js:124
msgid "Value"
msgstr ""
@@ -4088,11 +4330,6 @@ msgstr ""
msgid "Edit"
msgstr ""
-#: part/templates/part/params.html:44 part/templates/part/related.html:44
-#: part/templates/part/supplier.html:22 stock/views.py:1002 users/models.py:182
-msgid "Delete"
-msgstr ""
-
#: part/templates/part/params.html:68
msgid "New Template"
msgstr ""
@@ -4101,128 +4338,130 @@ msgstr ""
msgid "Create New Parameter Template"
msgstr ""
-#: part/templates/part/part_app_base.html:11
+#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
-#: part/templates/part/part_base.html:17
-msgid "This part is a variant of"
+#: part/templates/part/part_base.html:18
+#, python-format
+msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:32 templates/js/company.js:155
-#: templates/js/part.js:75 templates/js/part.js:152
+#: part/templates/part/part_base.html:33 templates/js/company.js:156
+#: templates/js/company.js:254 templates/js/part.js:76 templates/js/part.js:153
msgid "Inactive"
msgstr ""
-#: part/templates/part/part_base.html:39
+#: part/templates/part/part_base.html:40
msgid "Star this part"
msgstr ""
-#: part/templates/part/part_base.html:46
-#: stock/templates/stock/item_base.html:127
-#: stock/templates/stock/location.html:44
+#: part/templates/part/part_base.html:47
+#: stock/templates/stock/item_base.html:131
+#: stock/templates/stock/location.html:51
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:48
-#: stock/templates/stock/item_base.html:129
-#: stock/templates/stock/location.html:46 templates/qr_button.html:1
+#: part/templates/part/part_base.html:49
+#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/location.html:53 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:49
-#: stock/templates/stock/item_base.html:145
-#: stock/templates/stock/location.html:47
+#: part/templates/part/part_base.html:50
+#: stock/templates/stock/item_base.html:149
+#: stock/templates/stock/location.html:54
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:54
+#: part/templates/part/part_base.html:55
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:58
+#: part/templates/part/part_base.html:59
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:73
+#: part/templates/part/part_base.html:74
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:76
+#: part/templates/part/part_base.html:77
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:79
+#: part/templates/part/part_base.html:80
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:82
+#: part/templates/part/part_base.html:83
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:122 templates/js/table_filters.js:134
+#: part/templates/part/part_base.html:123 templates/js/table_filters.js:156
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:135 templates/InvenTree/index.html:130
+#: part/templates/part/part_base.html:136 templates/InvenTree/index.html:131
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:142
+#: part/templates/part/part_base.html:143
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:149
+#: part/templates/part/part_base.html:150
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:164 templates/js/bom.js:296
+#: part/templates/part/part_base.html:165 templates/js/bom.js:300
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:170 templates/js/part.js:417
+#: part/templates/part/part_base.html:171 templates/js/part.js:418
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:249
+#: part/templates/part/part_base.html:250
msgid "Calculate"
msgstr ""
#: part/templates/part/part_pricing.html:8
-msgid "Pricing information for:"
+#, python-format
+msgid "Pricing information for:
%(part)s."
msgstr ""
-#: part/templates/part/part_pricing.html:24
+#: part/templates/part/part_pricing.html:23
msgid "Supplier Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:28
-#: part/templates/part/part_pricing.html:54
+#: part/templates/part/part_pricing.html:27
+#: part/templates/part/part_pricing.html:53
msgid "Unit Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:34
-#: part/templates/part/part_pricing.html:60
+#: part/templates/part/part_pricing.html:33
+#: part/templates/part/part_pricing.html:59
msgid "Total Cost"
msgstr ""
-#: part/templates/part/part_pricing.html:42
+#: part/templates/part/part_pricing.html:41
msgid "No supplier pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:50
+#: part/templates/part/part_pricing.html:49
msgid "BOM Pricing"
msgstr ""
-#: part/templates/part/part_pricing.html:68
+#: part/templates/part/part_pricing.html:67
msgid "Note: BOM pricing is incomplete for this part"
msgstr ""
-#: part/templates/part/part_pricing.html:75
+#: part/templates/part/part_pricing.html:74
msgid "No BOM pricing available"
msgstr ""
-#: part/templates/part/part_pricing.html:85
+#: part/templates/part/part_pricing.html:84
msgid "No pricing information is available for this part."
msgstr ""
@@ -4234,6 +4473,36 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
+#: part/templates/part/partial_delete.html:7
+#, python-format
+msgid "Are you sure you want to delete part '%(full_name)s'?"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:12
+#, python-format
+msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:22
+#, python-format
+msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:33
+#, python-format
+msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:44
+#, python-format
+msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:55
+#, python-format
+msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
+msgstr ""
+
#: part/templates/part/related.html:18
msgid "Add Related"
msgstr ""
@@ -4259,38 +4528,23 @@ msgid "Part Stock"
msgstr ""
#: part/templates/part/stock.html:16
-msgid "Showing stock for all variants of"
+#, python-format
+msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
#: part/templates/part/stock_count.html:7 templates/js/bom.js:239
-#: templates/js/part.js:421
+#: templates/js/part.js:422
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:129
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:130
msgid "Low Stock"
msgstr ""
-#: part/templates/part/subcategories.html:5
-msgid "Child Categories"
-msgstr ""
-
#: part/templates/part/supplier.html:10
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/supplier.html:22
-msgid "Delete supplier parts"
-msgstr ""
-
-#: part/templates/part/supplier.html:51
-msgid "Create new supplier"
-msgstr ""
-
-#: part/templates/part/supplier.html:57
-msgid "Create new manufacturer"
-msgstr ""
-
#: part/templates/part/track.html:10
msgid "Part Tracking"
msgstr ""
@@ -4304,7 +4558,8 @@ msgid "Create new part variant"
msgstr ""
#: part/templates/part/variant_part.html:10
-msgid "Create a new variant of template"
+#, python-format
+msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
#: part/templates/part/variants.html:19
@@ -4452,75 +4707,75 @@ msgstr ""
msgid "Specify quantity"
msgstr ""
-#: part/views.py:1933
+#: part/views.py:1939
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1940
+#: part/views.py:1946
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1949
+#: part/views.py:1955
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2063
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2073
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2080
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2088
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2138
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2152
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2212
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2250
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2256
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2308
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2409
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2465
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2484
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2554
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2610
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr ""
@@ -4622,17 +4877,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1640
+#: stock/models.py:1643
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1646
+#: stock/models.py:1649
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/order.js:195 templates/js/stock.js:909
+#: templates/js/order.js:195 templates/js/stock.js:986
msgid "Date"
msgstr ""
@@ -4654,8 +4909,8 @@ msgstr ""
msgid "Moved {n} parts to {loc}"
msgstr ""
-#: stock/forms.py:114 stock/forms.py:406 stock/models.py:473
-#: stock/templates/stock/item_base.html:349 templates/js/stock.js:656
+#: stock/forms.py:114 stock/forms.py:406 stock/models.py:475
+#: stock/templates/stock/item_base.html:365 templates/js/stock.js:656
msgid "Expiry Date"
msgstr ""
@@ -4668,9 +4923,7 @@ msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
#: stock/forms.py:169
-msgid ""
-"Destination for serialized stock (by default, will remain in current "
-"location)"
+msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
#: stock/forms.py:171
@@ -4689,7 +4942,8 @@ msgstr ""
msgid "Select test report template"
msgstr ""
-#: stock/forms.py:267 templates/js/table_filters.js:111
+#: stock/forms.py:267 templates/js/table_filters.js:70
+#: templates/js/table_filters.js:133
msgid "Include sublocations"
msgstr ""
@@ -4745,11 +4999,11 @@ msgstr ""
msgid "Set the destination as the default location for selected parts"
msgstr ""
-#: stock/models.py:54 stock/models.py:511
+#: stock/models.py:54 stock/models.py:513
msgid "Owner"
msgstr ""
-#: stock/models.py:55 stock/models.py:512
+#: stock/models.py:55 stock/models.py:514
msgid "Select Owner"
msgstr ""
@@ -4786,203 +5040,202 @@ msgstr ""
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:363
+#: stock/models.py:365
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:372
+#: stock/models.py:374
msgid "Base part"
msgstr ""
-#: stock/models.py:381
+#: stock/models.py:383
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:386 stock/templates/stock/stock_app_base.html:7
+#: stock/models.py:388 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:391
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:396
+#: stock/models.py:398
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:401 stock/templates/stock/item_base.html:255
+#: stock/models.py:403 stock/templates/stock/item_base.html:259
msgid "Installed In"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:406
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:420
+#: stock/models.py:422
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:432
+#: stock/models.py:434
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:436
+#: stock/models.py:438
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:445
+#: stock/models.py:447
msgid "Source Build"
msgstr ""
-#: stock/models.py:447
+#: stock/models.py:449
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:458
+#: stock/models.py:460
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:461
+#: stock/models.py:463
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:467
+#: stock/models.py:469
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:474
-msgid ""
-"Expiry date for stock item. Stock will be considered expired after this date"
+#: stock/models.py:476
+msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:489
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:497 stock/templates/stock/item_notes.html:13
+#: stock/models.py:499 stock/templates/stock/item_notes.html:13
#: stock/templates/stock/navbar.html:54
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:507
+#: stock/models.py:509
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:612
+#: stock/models.py:614
msgid "Assigned to Customer"
msgstr ""
-#: stock/models.py:614
+#: stock/models.py:616
msgid "Manually assigned to customer"
msgstr ""
-#: stock/models.py:627
+#: stock/models.py:629
msgid "Returned from customer"
msgstr ""
-#: stock/models.py:629
+#: stock/models.py:631
msgid "Returned to location"
msgstr ""
-#: stock/models.py:789
+#: stock/models.py:792
msgid "Installed into stock item"
msgstr ""
-#: stock/models.py:797
+#: stock/models.py:800
msgid "Installed stock item"
msgstr ""
-#: stock/models.py:821
+#: stock/models.py:824
msgid "Uninstalled stock item"
msgstr ""
-#: stock/models.py:840
+#: stock/models.py:843
msgid "Uninstalled into location"
msgstr ""
-#: stock/models.py:941
+#: stock/models.py:944
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:947
+#: stock/models.py:950
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:953
+#: stock/models.py:956
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:956
+#: stock/models.py:959
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:959
+#: stock/models.py:962
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:991
+#: stock/models.py:994
msgid "Add serial number"
msgstr ""
-#: stock/models.py:994
+#: stock/models.py:997
#, python-brace-format
msgid "Serialized {n} items"
msgstr ""
-#: stock/models.py:1072
+#: stock/models.py:1075
msgid "Split from existing stock"
msgstr ""
-#: stock/models.py:1110
+#: stock/models.py:1113
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1556
msgid "Title"
msgstr ""
-#: stock/models.py:1553
+#: stock/models.py:1556
msgid "Tracking entry title"
msgstr ""
-#: stock/models.py:1555
+#: stock/models.py:1558
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1557
+#: stock/models.py:1560
msgid "Link to external page for further information"
msgstr ""
-#: stock/models.py:1617
+#: stock/models.py:1620
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1623
+#: stock/models.py:1626
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1641
+#: stock/models.py:1644
msgid "Test name"
msgstr ""
-#: stock/models.py:1647 templates/js/table_filters.js:190
+#: stock/models.py:1650 templates/js/table_filters.js:212
msgid "Test result"
msgstr ""
-#: stock/models.py:1653
+#: stock/models.py:1656
msgid "Test output value"
msgstr ""
-#: stock/models.py:1660
+#: stock/models.py:1663
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1666
+#: stock/models.py:1669
msgid "Test notes"
msgstr ""
@@ -4999,9 +5252,7 @@ msgid "Stock Item Attachments"
msgstr ""
#: stock/templates/stock/item_base.html:24
-msgid ""
-"You are not in the list of owners of this item. This stock item cannot be "
-"edited."
+msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
#: stock/templates/stock/item_base.html:31
@@ -5016,156 +5267,157 @@ msgstr ""
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:51
-msgid "This stock item is allocated to Sales Order"
+#: stock/templates/stock/item_base.html:53
+#, python-format
+msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:57
-msgid "This stock item is allocated to Build"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:63
-msgid ""
-"This stock item is serialized - it has a unique serial number and the "
-"quantity cannot be adjusted."
+#: stock/templates/stock/item_base.html:61
+#, python-format
+msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
#: stock/templates/stock/item_base.html:67
-msgid "This stock item cannot be deleted as it has child items"
+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:71
-msgid ""
-"This stock item will be automatically deleted when all stock is depleted."
+msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:91
-#: stock/templates/stock/item_base.html:353 templates/js/table_filters.js:123
-msgid "Expired"
+#: stock/templates/stock/item_base.html:75
+msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
#: stock/templates/stock/item_base.html:95
-#: stock/templates/stock/item_base.html:355 templates/js/table_filters.js:128
+#: stock/templates/stock/item_base.html:369 templates/js/table_filters.js:145
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:99
+#: stock/templates/stock/item_base.html:371 templates/js/table_filters.js:150
msgid "Stale"
msgstr ""
-#: stock/templates/stock/item_base.html:132 templates/js/barcode.js:309
+#: stock/templates/stock/item_base.html:136 templates/js/barcode.js:309
#: templates/js/barcode.js:314
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:134
+#: stock/templates/stock/item_base.html:138
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:136 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:140 templates/stock_table.html:31
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:143
+#: stock/templates/stock/item_base.html:147
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:147
+#: stock/templates/stock/item_base.html:151
#: stock/templates/stock/item_tests.html:27
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item_base.html:156
+#: stock/templates/stock/item_base.html:160
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:160
-#: stock/templates/stock/location.html:58 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:164
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:163 templates/stock_table.html:53
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:166 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:169
+#: stock/templates/stock/item_base.html:173
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:177
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:176
+#: stock/templates/stock/item_base.html:180
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:179
+#: stock/templates/stock/item_base.html:183
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:183 templates/js/stock.js:1222
+#: stock/templates/stock/item_base.html:187 templates/js/stock.js:1299
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:183
+#: stock/templates/stock/item_base.html:187
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:192
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/item_base.html:196
+#: stock/templates/stock/location.html:62
msgid "Stock actions"
msgstr ""
-#: stock/templates/stock/item_base.html:195
+#: stock/templates/stock/item_base.html:199
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:198
+#: stock/templates/stock/item_base.html:202
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:200
+#: stock/templates/stock/item_base.html:204
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:203
+#: stock/templates/stock/item_base.html:207
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:215
+#: stock/templates/stock/item_base.html:219
msgid "Stock Item Details"
msgstr ""
-#: stock/templates/stock/item_base.html:274 templates/js/build.js:442
+#: stock/templates/stock/item_base.html:278 templates/js/build.js:498
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:281
+#: stock/templates/stock/item_base.html:285
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:323
+#: stock/templates/stock/item_base.html:327
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:353
-msgid "This StockItem expired on"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:355
-msgid "This StockItem expires on"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:362 templates/js/stock.js:662
-msgid "Last Updated"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:367
-msgid "Last Stocktake"
+#: stock/templates/stock/item_base.html:369
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:371
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:378 templates/js/stock.js:662
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:383
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:387
msgid "No stocktake performed"
msgstr ""
@@ -5181,6 +5433,11 @@ msgstr ""
msgid "Are you sure you want to delete this stock item?"
msgstr ""
+#: stock/templates/stock/item_delete.html:12
+#, python-format
+msgid "This will remove %(qty)s units of %(full_name)s from stock."
+msgstr ""
+
#: stock/templates/stock/item_install.html:7
msgid "Install another StockItem into this item."
msgstr ""
@@ -5223,54 +5480,55 @@ msgstr ""
msgid "Add Test Data"
msgstr ""
-#: stock/templates/stock/location.html:13
-msgid ""
-"You are not in the list of owners of this location. This stock location "
-"cannot be edited."
+#: stock/templates/stock/location.html:20
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
-#: stock/templates/stock/location.html:30
+#: stock/templates/stock/location.html:37
msgid "All stock items"
msgstr ""
-#: stock/templates/stock/location.html:48
+#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:64
+#: stock/templates/stock/location.html:71
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:66
+#: stock/templates/stock/location.html:73
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:68
+#: stock/templates/stock/location.html:75
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:80
+#: stock/templates/stock/location.html:87
msgid "Location Details"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:92
msgid "Location Path"
msgstr ""
-#: stock/templates/stock/location.html:90
+#: stock/templates/stock/location.html:97
msgid "Location Description"
msgstr ""
-#: stock/templates/stock/location.html:95
+#: stock/templates/stock/location.html:102
+#: stock/templates/stock/location_navbar.html:11
+#: stock/templates/stock/location_navbar.html:18
+#: stock/templates/stock/sublocation.html:16
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:105
+#: stock/templates/stock/location.html:112
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:110 templates/InvenTree/search.html:263
-#: templates/stats.html:76 users/models.py:39
+#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5278,18 +5536,6 @@ msgstr ""
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/location_list.html:6
-msgid "Sub-Locations"
-msgstr ""
-
-#. Translators: pluralize with counter
-#: stock/templates/stock/location_list.html:17
-#, python-format
-msgid "%(counter)s Item"
-msgid_plural "%(counter)s Items"
-msgstr[0] ""
-msgstr[1] ""
-
#: stock/templates/stock/navbar.html:11
msgid "Stock Item Tracking"
msgstr ""
@@ -5314,7 +5560,7 @@ msgstr ""
msgid "Remove item"
msgstr ""
-#: stock/templates/stock/stock_app_base.html:15
+#: stock/templates/stock/stock_app_base.html:16
msgid "Loading..."
msgstr ""
@@ -5327,7 +5573,8 @@ msgid "Convert Stock Item"
msgstr ""
#: stock/templates/stock/stockitem_convert.html:8
-msgid "This stock item is current an instance of "
+#, python-format
+msgid "This stock item is current an instance of %(part)s"
msgstr ""
#: stock/templates/stock/stockitem_convert.html:9
@@ -5338,6 +5585,18 @@ msgstr ""
msgid "This action cannot be easily undone"
msgstr ""
+#: stock/templates/stock/sublocation.html:23 templates/stock_table.html:37
+msgid "Printing Actions"
+msgstr ""
+
+#: stock/templates/stock/sublocation.html:27 templates/stock_table.html:41
+msgid "Print labels"
+msgstr ""
+
+#: stock/templates/stock/tracking_delete.html:6
+msgid "Are you sure you want to delete this stock tracking entry?"
+msgstr ""
+
#: stock/views.py:123
msgid "Edit Stock Location"
msgstr ""
@@ -5455,7 +5714,7 @@ msgstr ""
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:178
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr ""
@@ -5517,7 +5776,7 @@ msgstr ""
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1543 templates/js/build.js:210
+#: stock/views.py:1543 templates/js/build.js:244
msgid "Create new Stock Item"
msgstr ""
@@ -5565,74 +5824,99 @@ msgstr ""
msgid "The requested page does not exist"
msgstr ""
-#: templates/InvenTree/index.html:6
+#: templates/InvenTree/index.html:7
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:97
+#: templates/InvenTree/index.html:98
msgid "Starred Parts"
msgstr ""
-#: templates/InvenTree/index.html:98
+#: templates/InvenTree/index.html:99
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:99
+#: templates/InvenTree/index.html:100
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:128
+#: templates/InvenTree/index.html:129
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:144
+#: templates/InvenTree/index.html:145
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:145
+#: templates/InvenTree/index.html:146
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:183
+#: templates/InvenTree/index.html:184
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:184
+#: templates/InvenTree/index.html:185
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:205
+#: templates/InvenTree/index.html:206
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:206
+#: templates/InvenTree/index.html:207
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:228
+#: templates/InvenTree/index.html:229
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:229
+#: templates/InvenTree/index.html:230
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:7 templates/InvenTree/search.html:13
+#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:23
+#: templates/InvenTree/search.html:24
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:252 templates/js/stock.js:300
+#: templates/InvenTree/search.html:268 templates/js/stock.js:300
msgid "Shipped to customer"
msgstr ""
-#: templates/InvenTree/search.html:255 templates/js/stock.js:310
+#: templates/InvenTree/search.html:271 templates/js/stock.js:310
msgid "No stock location set"
msgstr ""
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:29
+#, python-format
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr ""
@@ -5663,7 +5947,7 @@ msgstr ""
msgid "Global InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/global.html:26
+#: templates/InvenTree/settings/global.html:27
msgid "Barcode Settings"
msgstr ""
@@ -5703,8 +5987,8 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:7
-#: templates/InvenTree/settings/settings.html:13 templates/navbar.html:78
+#: templates/InvenTree/settings/settings.html:8
+#: templates/InvenTree/settings/settings.html:14 templates/navbar.html:84
msgid "Settings"
msgstr ""
@@ -5716,7 +6000,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:48
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr ""
@@ -5730,7 +6014,7 @@ msgid "Account"
msgstr ""
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
+msgid "Appearance"
msgstr ""
#: templates/InvenTree/settings/tabs.html:13
@@ -5749,24 +6033,6 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid ""
-"\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected "
-"color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr ""
@@ -5776,7 +6042,7 @@ msgid "Change Password"
msgstr ""
#: templates/InvenTree/settings/user.html:28
-#: templates/registration/login.html:58
+#: templates/registration/login.html:59
msgid "Username"
msgstr ""
@@ -5829,13 +6095,23 @@ msgid "View Code on GitHub"
msgstr ""
#: templates/about.html:63
-msgid "Get the App"
+msgid "Credits"
msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr ""
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr ""
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -5913,8 +6189,7 @@ msgid "Link Barcode to Stock Item"
msgstr ""
#: templates/js/barcode.js:311
-msgid ""
-"This will remove the association between this stock item and the barcode"
+msgid "This will remove the association between this stock item and the barcode"
msgstr ""
#: templates/js/barcode.js:317
@@ -5961,7 +6236,7 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/bom.js:175 templates/js/build.js:934
+#: templates/js/bom.js:175 templates/js/build.js:994
msgid "Open subassembly"
msgstr ""
@@ -5969,77 +6244,88 @@ msgstr ""
msgid "No pricing available"
msgstr ""
-#: templates/js/bom.js:286 templates/js/bom.js:372
+#: templates/js/bom.js:272 templates/js/filters.js:167
+#: templates/js/filters.js:397
+msgid "true"
+msgstr ""
+
+#: templates/js/bom.js:273 templates/js/filters.js:171
+#: templates/js/filters.js:398
+msgid "false"
+msgstr ""
+
+#: templates/js/bom.js:290 templates/js/bom.js:376
msgid "View BOM"
msgstr ""
-#: templates/js/bom.js:346
+#: templates/js/bom.js:350
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/bom.js:348
+#: templates/js/bom.js:352
msgid "This line has been validated"
msgstr ""
-#: templates/js/bom.js:350
+#: templates/js/bom.js:354
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/bom.js:352
+#: templates/js/bom.js:356
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/bom.js:443 templates/js/build.js:305 templates/js/build.js:1032
+#: templates/js/bom.js:447 templates/js/build.js:340 templates/js/build.js:1092
msgid "No BOM items found"
msgstr ""
-#: templates/js/build.js:56
+#: templates/js/build.js:62
msgid "Auto-allocate stock items to this output"
msgstr ""
-#: templates/js/build.js:62
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/build.js:71
+#: templates/js/build.js:70
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/build.js:77
+#: templates/js/build.js:80
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/build.js:89
msgid "Delete build output"
msgstr ""
-#: templates/js/build.js:209 templates/stock_table.html:20
+#: templates/js/build.js:243 templates/stock_table.html:20
msgid "New Stock Item"
msgstr ""
-#: templates/js/build.js:493
+#: templates/js/build.js:549
msgid "Required Part"
msgstr ""
-#: templates/js/build.js:514
+#: templates/js/build.js:570
msgid "Quantity Per"
msgstr ""
-#: templates/js/build.js:582 templates/js/build.js:996
-#: templates/stock_table.html:57
+#: templates/js/build.js:638 templates/js/build.js:1056
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/build.js:632
+#: templates/js/build.js:691
msgid "No builds matching query"
msgstr ""
-#: templates/js/build.js:649 templates/js/part.js:323 templates/js/stock.js:511
-#: templates/js/stock.js:1254
+#: templates/js/build.js:708 templates/js/part.js:324 templates/js/part.js:546
+#: templates/js/stock.js:511 templates/js/stock.js:938
+#: templates/js/stock.js:1331
msgid "Select"
msgstr ""
-#: templates/js/build.js:669
+#: templates/js/build.js:728
msgid "Build order is overdue"
msgstr ""
-#: templates/js/build.js:767
+#: templates/js/build.js:827
msgid "No parts allocated for"
msgstr ""
@@ -6056,17 +6342,23 @@ msgid "No company information found"
msgstr ""
#: templates/js/company.js:129
-msgid "No supplier parts found"
+msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/company.js:147 templates/js/part.js:59 templates/js/part.js:144
+#: templates/js/company.js:148 templates/js/company.js:246
+#: templates/js/part.js:60 templates/js/part.js:145
msgid "Template part"
msgstr ""
-#: templates/js/company.js:151 templates/js/part.js:63 templates/js/part.js:148
+#: templates/js/company.js:152 templates/js/company.js:250
+#: templates/js/part.js:64 templates/js/part.js:149
msgid "Assembled part"
msgstr ""
+#: templates/js/company.js:227
+msgid "No supplier parts found"
+msgstr ""
+
#: templates/js/filters.js:193
msgid "Select filter"
msgstr ""
@@ -6148,11 +6440,6 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr ""
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr ""
@@ -6233,59 +6520,63 @@ msgstr ""
msgid "No sales orders found"
msgstr ""
-#: templates/js/part.js:51 templates/js/part.js:136
+#: templates/js/part.js:52 templates/js/part.js:137
msgid "Trackable part"
msgstr ""
-#: templates/js/part.js:55 templates/js/part.js:140
+#: templates/js/part.js:56 templates/js/part.js:141
msgid "Virtual part"
msgstr ""
-#: templates/js/part.js:67
+#: templates/js/part.js:68
msgid "Starred part"
msgstr ""
-#: templates/js/part.js:71
+#: templates/js/part.js:72
msgid "Salable part"
msgstr ""
-#: templates/js/part.js:185
+#: templates/js/part.js:186
msgid "No variants found"
msgstr ""
-#: templates/js/part.js:271 templates/js/part.js:451
+#: templates/js/part.js:272 templates/js/part.js:452
msgid "No parts found"
msgstr ""
-#: templates/js/part.js:390
+#: templates/js/part.js:391
msgid "No category"
msgstr ""
-#: templates/js/part.js:408 templates/js/table_filters.js:296
+#: templates/js/part.js:409 templates/js/table_filters.js:318
msgid "Low stock"
msgstr ""
-#: templates/js/part.js:511
+#: templates/js/part.js:571 templates/js/stock.js:962
+msgid "Path"
+msgstr ""
+
+#: templates/js/part.js:588
msgid "YES"
msgstr ""
-#: templates/js/part.js:513
+#: templates/js/part.js:590
msgid "NO"
msgstr ""
-#: templates/js/part.js:547
+#: templates/js/part.js:624
msgid "No test templates matching query"
msgstr ""
-#: templates/js/part.js:598 templates/js/stock.js:75
+#: templates/js/part.js:675 templates/js/stock.js:75
msgid "Edit test result"
msgstr ""
-#: templates/js/part.js:599 templates/js/stock.js:76
+#: templates/js/part.js:676 templates/js/stock.js:76
msgid "Delete test result"
msgstr ""
-#: templates/js/part.js:605
+#: templates/js/part.js:682
msgid "This test is defined for a parent part"
msgstr ""
@@ -6399,6 +6690,18 @@ msgstr ""
msgid "No stock items matching query"
msgstr ""
+#: templates/js/stock.js:357
+msgid "items"
+msgstr ""
+
+#: templates/js/stock.js:449
+msgid "batches"
+msgstr ""
+
+#: templates/js/stock.js:476
+msgid "locations"
+msgstr ""
+
#: templates/js/stock.js:478
msgid "Undefined location"
msgstr ""
@@ -6443,7 +6746,7 @@ msgstr ""
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/stock.js:620 templates/js/table_filters.js:116
+#: templates/js/stock.js:620 templates/js/table_filters.js:138
msgid "Depleted"
msgstr ""
@@ -6467,31 +6770,31 @@ msgstr ""
msgid "Status code must be selected"
msgstr ""
-#: templates/js/stock.js:973
+#: templates/js/stock.js:1050
msgid "No user information"
msgstr ""
-#: templates/js/stock.js:983
+#: templates/js/stock.js:1060
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/stock.js:984
+#: templates/js/stock.js:1061
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/stock.js:1093
+#: templates/js/stock.js:1170
msgid "Create New Location"
msgstr ""
-#: templates/js/stock.js:1192
+#: templates/js/stock.js:1269
msgid "Serial"
msgstr ""
-#: templates/js/stock.js:1285 templates/js/table_filters.js:149
+#: templates/js/stock.js:1362 templates/js/table_filters.js:171
msgid "Installed"
msgstr ""
-#: templates/js/stock.js:1310
+#: templates/js/stock.js:1387
msgid "Install item"
msgstr ""
@@ -6503,148 +6806,153 @@ msgstr ""
msgid "Validated"
msgstr ""
-#: templates/js/table_filters.js:70 templates/js/table_filters.js:159
-msgid "Is Serialized"
-msgstr ""
-
-#: templates/js/table_filters.js:73 templates/js/table_filters.js:166
-msgid "Serial number GTE"
-msgstr ""
-
-#: templates/js/table_filters.js:74 templates/js/table_filters.js:167
-msgid "Serial number greater than or equal to"
-msgstr ""
-
-#: templates/js/table_filters.js:77 templates/js/table_filters.js:170
-msgid "Serial number LTE"
-msgstr ""
-
-#: templates/js/table_filters.js:78 templates/js/table_filters.js:171
-msgid "Serial number less than or equal to"
+#: templates/js/table_filters.js:71
+msgid "Include locations"
msgstr ""
#: templates/js/table_filters.js:81 templates/js/table_filters.js:82
-#: templates/js/table_filters.js:162 templates/js/table_filters.js:163
-msgid "Serial number"
-msgstr ""
-
-#: templates/js/table_filters.js:86 templates/js/table_filters.js:180
-msgid "Batch code"
-msgstr ""
-
-#: templates/js/table_filters.js:96 templates/js/table_filters.js:263
-msgid "Active parts"
-msgstr ""
-
-#: templates/js/table_filters.js:97
-msgid "Show stock for active parts"
-msgstr ""
-
-#: templates/js/table_filters.js:102
-msgid "Part is an assembly"
-msgstr ""
-
-#: templates/js/table_filters.js:106
-msgid "Is allocated"
-msgstr ""
-
-#: templates/js/table_filters.js:107
-msgid "Item has been allocated"
-msgstr ""
-
-#: templates/js/table_filters.js:112
-msgid "Include stock in sublocations"
-msgstr ""
-
-#: templates/js/table_filters.js:117
-msgid "Show stock items which are depleted"
-msgstr ""
-
-#: templates/js/table_filters.js:124
-msgid "Show stock items which have expired"
-msgstr ""
-
-#: templates/js/table_filters.js:129
-msgid "Show stock which is close to expiring"
-msgstr ""
-
-#: templates/js/table_filters.js:135
-msgid "Show items which are in stock"
-msgstr ""
-
-#: templates/js/table_filters.js:139
-msgid "In Production"
-msgstr ""
-
-#: templates/js/table_filters.js:140
-msgid "Show items which are in production"
-msgstr ""
-
-#: templates/js/table_filters.js:144
-msgid "Include Variants"
-msgstr ""
-
-#: templates/js/table_filters.js:145
-msgid "Include stock items for variant parts"
-msgstr ""
-
-#: templates/js/table_filters.js:150
-msgid "Show stock items which are installed in another item"
-msgstr ""
-
-#: templates/js/table_filters.js:154
-msgid "Sent to customer"
-msgstr ""
-
-#: templates/js/table_filters.js:155
-msgid "Show items which have been assigned to a customer"
-msgstr ""
-
-#: templates/js/table_filters.js:175 templates/js/table_filters.js:176
-msgid "Stock status"
-msgstr ""
-
-#: templates/js/table_filters.js:209
-msgid "Build status"
-msgstr ""
-
-#: templates/js/table_filters.js:228 templates/js/table_filters.js:245
-msgid "Order status"
-msgstr ""
-
-#: templates/js/table_filters.js:233 templates/js/table_filters.js:250
-msgid "Outstanding"
-msgstr ""
-
-#: templates/js/table_filters.js:273
+#: templates/js/table_filters.js:295
msgid "Include subcategories"
msgstr ""
-#: templates/js/table_filters.js:274
+#: templates/js/table_filters.js:92 templates/js/table_filters.js:181
+msgid "Is Serialized"
+msgstr ""
+
+#: templates/js/table_filters.js:95 templates/js/table_filters.js:188
+msgid "Serial number GTE"
+msgstr ""
+
+#: templates/js/table_filters.js:96 templates/js/table_filters.js:189
+msgid "Serial number greater than or equal to"
+msgstr ""
+
+#: templates/js/table_filters.js:99 templates/js/table_filters.js:192
+msgid "Serial number LTE"
+msgstr ""
+
+#: templates/js/table_filters.js:100 templates/js/table_filters.js:193
+msgid "Serial number less than or equal to"
+msgstr ""
+
+#: templates/js/table_filters.js:103 templates/js/table_filters.js:104
+#: templates/js/table_filters.js:184 templates/js/table_filters.js:185
+msgid "Serial number"
+msgstr ""
+
+#: templates/js/table_filters.js:108 templates/js/table_filters.js:202
+msgid "Batch code"
+msgstr ""
+
+#: templates/js/table_filters.js:118 templates/js/table_filters.js:285
+msgid "Active parts"
+msgstr ""
+
+#: templates/js/table_filters.js:119
+msgid "Show stock for active parts"
+msgstr ""
+
+#: templates/js/table_filters.js:124
+msgid "Part is an assembly"
+msgstr ""
+
+#: templates/js/table_filters.js:128
+msgid "Is allocated"
+msgstr ""
+
+#: templates/js/table_filters.js:129
+msgid "Item has been allocated"
+msgstr ""
+
+#: templates/js/table_filters.js:134
+msgid "Include stock in sublocations"
+msgstr ""
+
+#: templates/js/table_filters.js:139
+msgid "Show stock items which are depleted"
+msgstr ""
+
+#: templates/js/table_filters.js:146
+msgid "Show stock items which have expired"
+msgstr ""
+
+#: templates/js/table_filters.js:151
+msgid "Show stock which is close to expiring"
+msgstr ""
+
+#: templates/js/table_filters.js:157
+msgid "Show items which are in stock"
+msgstr ""
+
+#: templates/js/table_filters.js:161
+msgid "In Production"
+msgstr ""
+
+#: templates/js/table_filters.js:162
+msgid "Show items which are in production"
+msgstr ""
+
+#: templates/js/table_filters.js:166
+msgid "Include Variants"
+msgstr ""
+
+#: templates/js/table_filters.js:167
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/table_filters.js:172
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/table_filters.js:176
+msgid "Sent to customer"
+msgstr ""
+
+#: templates/js/table_filters.js:177
+msgid "Show items which have been assigned to a customer"
+msgstr ""
+
+#: templates/js/table_filters.js:197 templates/js/table_filters.js:198
+msgid "Stock status"
+msgstr ""
+
+#: templates/js/table_filters.js:231
+msgid "Build status"
+msgstr ""
+
+#: templates/js/table_filters.js:250 templates/js/table_filters.js:267
+msgid "Order status"
+msgstr ""
+
+#: templates/js/table_filters.js:255 templates/js/table_filters.js:272
+msgid "Outstanding"
+msgstr ""
+
+#: templates/js/table_filters.js:296
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/table_filters.js:278
+#: templates/js/table_filters.js:300
msgid "Has IPN"
msgstr ""
-#: templates/js/table_filters.js:279
+#: templates/js/table_filters.js:301
msgid "Part has internal part number"
msgstr ""
-#: templates/js/table_filters.js:284
+#: templates/js/table_filters.js:306
msgid "Show active parts"
msgstr ""
-#: templates/js/table_filters.js:292
+#: templates/js/table_filters.js:314
msgid "Stock available"
msgstr ""
-#: templates/js/table_filters.js:308
+#: templates/js/table_filters.js:330
msgid "Starred"
msgstr ""
-#: templates/js/table_filters.js:320
+#: templates/js/table_filters.js:342
msgid "Purchasable"
msgstr ""
@@ -6705,6 +7013,10 @@ msgstr ""
msgid "Form errors exist"
msgstr ""
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr ""
@@ -6717,19 +7029,19 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:71 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr ""
-#: templates/navbar.html:73
+#: templates/navbar.html:79
msgid "Logout"
msgstr ""
-#: templates/navbar.html:75 templates/registration/login.html:89
+#: templates/navbar.html:81 templates/registration/login.html:90
msgid "Login"
msgstr ""
-#: templates/navbar.html:94
+#: templates/navbar.html:104
msgid "About InvenTree"
msgstr ""
@@ -6737,73 +7049,67 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
+#: templates/registration/logged_out.html:51
msgid "You have been logged out"
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
+#: templates/registration/logged_out.html:52
+#: templates/registration/password_reset_complete.html:52
+#: templates/registration/password_reset_done.html:59
msgid "Return to login screen"
msgstr ""
-#: templates/registration/login.html:64
+#: templates/registration/login.html:65
msgid "Enter username"
msgstr ""
-#: templates/registration/login.html:70
+#: templates/registration/login.html:71
msgid "Password"
msgstr ""
-#: templates/registration/login.html:83
+#: templates/registration/login.html:84
msgid "Username / password combination is incorrect"
msgstr ""
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
+#: templates/registration/login.html:96
+#: templates/registration/password_reset_form.html:52
msgid "Forgotten your password?"
msgstr ""
-#: templates/registration/login.html:95
+#: templates/registration/login.html:96
msgid "Click here to reset"
msgstr ""
-#: templates/registration/password_reset_complete.html:50
+#: templates/registration/password_reset_complete.html:51
msgid "Password reset complete"
msgstr ""
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
+#: templates/registration/password_reset_confirm.html:53
+#: templates/registration/password_reset_confirm.html:57
msgid "Change password"
msgstr ""
-#: templates/registration/password_reset_confirm.html:60
-msgid ""
-"The password reset link was invalid, possibly because it has already been "
-"used. Please request a new password reset."
+#: templates/registration/password_reset_confirm.html:61
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/registration/password_reset_done.html:51
-msgid ""
-"We've emailed you instructions for setting your password, if an account "
-"exists with the email you entered. You should receive them shortly."
+#: templates/registration/password_reset_done.html:52
+msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly."
msgstr ""
-#: templates/registration/password_reset_done.html:54
-msgid ""
-"If you don't receive an email, please make sure you've entered the address "
-"you registered with, and check your spam folder."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:52
-msgid "Enter your email address below."
+#: templates/registration/password_reset_done.html:55
+msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder."
msgstr ""
#: templates/registration/password_reset_form.html:53
+msgid "Enter your email address below."
+msgstr ""
+
+#: templates/registration/password_reset_form.html:54
msgid "An email will be sent with password reset instructions."
msgstr ""
-#: templates/registration/password_reset_form.html:58
+#: templates/registration/password_reset_form.html:59
msgid "Send email"
msgstr ""
@@ -6851,58 +7157,58 @@ msgstr ""
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:36
-msgid "Printing Actions"
-msgstr ""
-
-#: templates/stock_table.html:40
-msgid "Print labels"
-msgstr ""
-
-#: templates/stock_table.html:42
+#: templates/stock_table.html:43
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:53
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:54
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:60
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:61
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:61
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
+#: templates/yesnolabel.html:4
+msgid "Yes"
+msgstr ""
+
+#: templates/yesnolabel.html:6
+msgid "No"
+msgstr ""
+
#: users/admin.py:64
msgid "Users"
msgstr ""
@@ -6927,34 +7233,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:165
+#: users/models.py:170
msgid "Permission set"
msgstr ""
-#: users/models.py:173
+#: users/models.py:178
msgid "Group"
msgstr ""
-#: users/models.py:176
+#: users/models.py:181
msgid "View"
msgstr ""
-#: users/models.py:176
+#: users/models.py:181
msgid "Permission to view items"
msgstr ""
-#: users/models.py:178
+#: users/models.py:183
msgid "Permission to add items"
msgstr ""
-#: users/models.py:180
+#: users/models.py:185
msgid "Change"
msgstr ""
-#: users/models.py:180
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.mo b/InvenTree/locale/es/LC_MESSAGES/django.mo
index 71cbdf3e9d..2343941a2a 100644
Binary files a/InvenTree/locale/es/LC_MESSAGES/django.mo and b/InvenTree/locale/es/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 28684fc524..459ce5092a 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-21 09:17+0000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: 2021-04-21 09:33\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
@@ -67,35 +67,36 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:375 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr ""
-
-#: InvenTree/helpers.py:378
-msgid "Empty serial number string"
-msgstr ""
-
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 InvenTree/helpers.py:406 InvenTree/helpers.py:409
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:414
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:422
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:426
+#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -140,7 +141,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
@@ -165,23 +166,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:491
msgid "English"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:492
msgid "French"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:493
msgid "German"
msgstr ""
-#: InvenTree/settings.py:496
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:497
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr ""
@@ -375,16 +376,16 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1227
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
#: build/templates/build/detail.html:31 common/models.py:703
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
@@ -458,7 +459,7 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:445
+#: build/templates/build/detail.html:59 order/models.py:455
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
@@ -508,7 +509,7 @@ msgstr ""
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr ""
@@ -516,8 +517,8 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:195
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -540,10 +541,10 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:669
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
#: part/models.py:1876 part/models.py:1888 part/models.py:1906
@@ -628,7 +629,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr ""
@@ -678,9 +679,9 @@ msgstr ""
#: company/models.py:135 company/models.py:501
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:234
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
@@ -713,47 +714,47 @@ msgstr ""
msgid "Completed build output"
msgstr ""
-#: build/models.py:1118
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1143
+#: build/models.py:1157
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1147
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1151
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1158 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1162 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1166
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1206 stock/templates/stock/item_base.html:306
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1207
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1214 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
@@ -765,19 +766,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1215
+#: build/models.py:1229
msgid "Source stock item"
msgstr ""
-#: build/models.py:1228
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1236
+#: build/models.py:1250
msgid "Install into"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1251
msgid "Destination stock item"
msgstr ""
@@ -801,7 +802,7 @@ msgstr ""
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/allocate.html:26 build/views.py:308 build/views.py:794
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
msgstr ""
@@ -811,7 +812,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:794
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -954,7 +955,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1139,7 +1140,7 @@ msgstr ""
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
-#: build/templates/build/index.html:28 build/views.py:667
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr ""
@@ -1226,141 +1227,145 @@ msgstr ""
msgid "Create Build Output"
msgstr ""
-#: build/views.py:173 stock/models.py:969 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:182
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:248
+#: build/views.py:259
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:269 build/views.py:359
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:270 build/views.py:360 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:282
+#: build/views.py:293
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:284 build/views.py:485
+#: build/views.py:295 build/views.py:496
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:296
+#: build/views.py:307
msgid "Build output deleted"
msgstr ""
-#: build/views.py:394
+#: build/views.py:405
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:400
+#: build/views.py:411
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:411
+#: build/views.py:422
msgid "Completed build order"
msgstr ""
-#: build/views.py:427
+#: build/views.py:438
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:469
+#: build/views.py:480
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:476
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:581
+#: build/views.py:592
msgid "Build output completed"
msgstr ""
-#: build/views.py:721
+#: build/views.py:732
msgid "Created new build"
msgstr ""
-#: build/views.py:742
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr ""
-#: build/views.py:775
+#: build/views.py:786
msgid "Edited build"
msgstr ""
-#: build/views.py:784
+#: build/views.py:795
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:799
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:811
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr ""
-#: build/views.py:854
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr ""
-#: build/views.py:860
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:861 templates/js/bom.js:230 templates/js/build.js:575
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr ""
-#: build/views.py:863
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr ""
-#: build/views.py:1026
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:1030
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1059
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1072 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1108 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1118 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1128 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1133 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
@@ -1766,7 +1771,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:171
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
@@ -1865,7 +1870,7 @@ msgstr ""
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1372
+#: company/models.py:312 company/models.py:463 order/views.py:1384
msgid "Select part"
msgstr ""
@@ -1905,7 +1910,7 @@ msgstr ""
#: company/models.py:475 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
@@ -2017,7 +2022,8 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
+msgid ""
+"There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2033,7 +2039,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:440
+#: company/templates/company/detail.html:67 order/models.py:450
#: order/templates/order/sales_order_base.html:92 stock/models.py:415
#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
@@ -2122,13 +2128,13 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
+#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:74
+#: order/templates/order/purchase_order_detail.html:49
#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
msgid "New Supplier Part"
msgstr ""
@@ -2226,7 +2232,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:184
+#: stock/views.py:1002 users/models.py:187
msgid "Delete"
msgstr ""
@@ -2252,7 +2258,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2266,7 +2272,7 @@ msgstr ""
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr ""
@@ -2278,7 +2284,7 @@ msgstr ""
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr ""
@@ -2357,7 +2363,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2624
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr ""
@@ -2467,15 +2473,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2628
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2672
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2686
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr ""
@@ -2565,7 +2571,7 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:452
+#: order/forms.py:145 order/models.py:462
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
@@ -2601,7 +2607,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr ""
@@ -2642,8 +2648,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2651,120 +2657,128 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:359
+#: order/models.py:348
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:350
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:369
msgid "Received items"
msgstr ""
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr ""
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr ""
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr ""
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr ""
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr ""
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr ""
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:214
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr ""
-#: order/models.py:648 stock/models.py:508
+#: order/models.py:658 stock/models.py:508
#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr ""
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr ""
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr ""
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2812,9 +2826,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr ""
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
#: order/templates/order/order_complete.html:7
@@ -2826,10 +2853,10 @@ msgid "This order has line items which have not been marked as received."
msgstr ""
#: order/templates/order/order_complete.html:11
-msgid "Marking this order as complete will remove these line items."
+msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: order/templates/order/order_issue.html:7
+#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
@@ -2881,11 +2908,13 @@ msgid "Select Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:45
-msgid "Create new purchase order for {{ supplier.name }}"
+#, python-format
+msgid "Create new purchase order for %(name)s"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:68
-msgid "Select a purchase order for"
+#, python-format
+msgid "Select a purchase order for %(name)s"
msgstr ""
#: order/templates/order/po_attachments.html:12
@@ -2907,43 +2936,29 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:185 part/templates/part/category.html:227
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:205
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:247
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:252
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr ""
@@ -2966,7 +2981,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
-#: users/models.py:38
+#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3019,6 +3034,10 @@ msgstr ""
msgid "Warning"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr ""
@@ -3213,65 +3232,65 @@ msgstr ""
msgid "No lines specified"
msgstr ""
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr ""
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr ""
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr ""
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr ""
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr ""
@@ -3457,7 +3476,7 @@ msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
#: templates/InvenTree/search.html:127 templates/stats.html:63
-#: users/models.py:37
+#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -4004,7 +4023,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2270
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr ""
@@ -4694,63 +4713,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2069
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2079
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2086
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2094
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2144
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2158
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2218
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2256
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2262
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2314
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2415
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2471
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2490
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2560
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2616
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr ""
@@ -5301,15 +5320,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:164
-#: stock/templates/stock/location.html:65 templates/stock_table.html:56
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
@@ -5503,7 +5522,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:39
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5689,7 +5708,7 @@ msgstr ""
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:180
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr ""
@@ -5867,6 +5886,31 @@ msgstr ""
msgid "No stock location set"
msgstr ""
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:29
+#, python-format
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr ""
@@ -5950,7 +5994,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:49
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr ""
@@ -5964,7 +6008,7 @@ msgid "Account"
msgstr ""
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
+msgid "Appearance"
msgstr ""
#: templates/InvenTree/settings/tabs.html:13
@@ -5983,22 +6027,6 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid "\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr ""
@@ -6061,13 +6089,23 @@ msgid "View Code on GitHub"
msgstr ""
#: templates/about.html:63
-msgid "Get the App"
+msgid "Credits"
msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr ""
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr ""
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -6263,7 +6301,7 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/build.js:638 templates/js/build.js:1056
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
@@ -6396,11 +6434,6 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr ""
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr ""
@@ -6974,6 +7007,10 @@ msgstr ""
msgid "Form errors exist"
msgstr ""
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr ""
@@ -6986,7 +7023,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr ""
@@ -7118,43 +7155,43 @@ msgstr ""
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:54
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
@@ -7190,34 +7227,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:167
+#: users/models.py:170
msgid "Permission set"
msgstr ""
-#: users/models.py:175
+#: users/models.py:178
msgid "Group"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "View"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "Permission to view items"
msgstr ""
-#: users/models.py:180
+#: users/models.py:183
msgid "Permission to add items"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Change"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:184
+#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.mo b/InvenTree/locale/fr/LC_MESSAGES/django.mo
index 2c90dd0c81..71c5e16916 100644
Binary files a/InvenTree/locale/fr/LC_MESSAGES/django.mo and b/InvenTree/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index f344b4140c..ae5d861fa2 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-21 09:17+0000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: 2021-04-21 09:33\n"
"Last-Translator: \n"
"Language-Team: French\n"
@@ -67,35 +67,36 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:375 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr ""
-
-#: InvenTree/helpers.py:378
-msgid "Empty serial number string"
-msgstr ""
-
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 InvenTree/helpers.py:406 InvenTree/helpers.py:409
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:414
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:422
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:426
+#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -140,7 +141,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
@@ -165,23 +166,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:491
msgid "English"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:492
msgid "French"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:493
msgid "German"
msgstr ""
-#: InvenTree/settings.py:496
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:497
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr ""
@@ -375,16 +376,16 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1227
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
#: build/templates/build/detail.html:31 common/models.py:703
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
@@ -458,7 +459,7 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:445
+#: build/templates/build/detail.html:59 order/models.py:455
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
@@ -508,7 +509,7 @@ msgstr ""
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr ""
@@ -516,8 +517,8 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:195
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -540,10 +541,10 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:669
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
#: part/models.py:1876 part/models.py:1888 part/models.py:1906
@@ -628,7 +629,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr ""
@@ -678,9 +679,9 @@ msgstr ""
#: company/models.py:135 company/models.py:501
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:234
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
@@ -713,47 +714,47 @@ msgstr ""
msgid "Completed build output"
msgstr ""
-#: build/models.py:1118
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1143
+#: build/models.py:1157
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1147
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1151
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1158 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1162 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1166
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1206 stock/templates/stock/item_base.html:306
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1207
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1214 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
@@ -765,19 +766,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1215
+#: build/models.py:1229
msgid "Source stock item"
msgstr ""
-#: build/models.py:1228
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1236
+#: build/models.py:1250
msgid "Install into"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1251
msgid "Destination stock item"
msgstr ""
@@ -801,7 +802,7 @@ msgstr ""
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/allocate.html:26 build/views.py:308 build/views.py:794
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
msgstr ""
@@ -811,7 +812,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:794
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -954,7 +955,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1139,7 +1140,7 @@ msgstr ""
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
-#: build/templates/build/index.html:28 build/views.py:667
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr ""
@@ -1226,141 +1227,145 @@ msgstr ""
msgid "Create Build Output"
msgstr ""
-#: build/views.py:173 stock/models.py:969 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:182
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:248
+#: build/views.py:259
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:269 build/views.py:359
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:270 build/views.py:360 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:282
+#: build/views.py:293
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:284 build/views.py:485
+#: build/views.py:295 build/views.py:496
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:296
+#: build/views.py:307
msgid "Build output deleted"
msgstr ""
-#: build/views.py:394
+#: build/views.py:405
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:400
+#: build/views.py:411
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:411
+#: build/views.py:422
msgid "Completed build order"
msgstr ""
-#: build/views.py:427
+#: build/views.py:438
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:469
+#: build/views.py:480
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:476
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:581
+#: build/views.py:592
msgid "Build output completed"
msgstr ""
-#: build/views.py:721
+#: build/views.py:732
msgid "Created new build"
msgstr ""
-#: build/views.py:742
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr ""
-#: build/views.py:775
+#: build/views.py:786
msgid "Edited build"
msgstr ""
-#: build/views.py:784
+#: build/views.py:795
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:799
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:811
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr ""
-#: build/views.py:854
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr ""
-#: build/views.py:860
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:861 templates/js/bom.js:230 templates/js/build.js:575
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr ""
-#: build/views.py:863
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr ""
-#: build/views.py:1026
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:1030
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1059
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1072 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1108 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1118 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1128 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1133 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
@@ -1766,7 +1771,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:171
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
@@ -1865,7 +1870,7 @@ msgstr ""
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1372
+#: company/models.py:312 company/models.py:463 order/views.py:1384
msgid "Select part"
msgstr ""
@@ -1905,7 +1910,7 @@ msgstr ""
#: company/models.py:475 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
@@ -2017,7 +2022,8 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
+msgid ""
+"There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2033,7 +2039,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:440
+#: company/templates/company/detail.html:67 order/models.py:450
#: order/templates/order/sales_order_base.html:92 stock/models.py:415
#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
@@ -2122,13 +2128,13 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
+#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:74
+#: order/templates/order/purchase_order_detail.html:49
#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
msgid "New Supplier Part"
msgstr ""
@@ -2226,7 +2232,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:184
+#: stock/views.py:1002 users/models.py:187
msgid "Delete"
msgstr ""
@@ -2252,7 +2258,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2266,7 +2272,7 @@ msgstr ""
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr ""
@@ -2278,7 +2284,7 @@ msgstr ""
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr ""
@@ -2357,7 +2363,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2624
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr ""
@@ -2467,15 +2473,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2628
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2672
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2686
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr ""
@@ -2565,7 +2571,7 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:452
+#: order/forms.py:145 order/models.py:462
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
@@ -2601,7 +2607,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr ""
@@ -2642,8 +2648,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2651,120 +2657,128 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:359
+#: order/models.py:348
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:350
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:369
msgid "Received items"
msgstr ""
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr ""
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr ""
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr ""
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr ""
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr ""
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr ""
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:214
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr ""
-#: order/models.py:648 stock/models.py:508
+#: order/models.py:658 stock/models.py:508
#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr ""
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr ""
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr ""
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2812,9 +2826,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr ""
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
#: order/templates/order/order_complete.html:7
@@ -2826,10 +2853,10 @@ msgid "This order has line items which have not been marked as received."
msgstr ""
#: order/templates/order/order_complete.html:11
-msgid "Marking this order as complete will remove these line items."
+msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: order/templates/order/order_issue.html:7
+#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
@@ -2881,11 +2908,13 @@ msgid "Select Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:45
-msgid "Create new purchase order for {{ supplier.name }}"
+#, python-format
+msgid "Create new purchase order for %(name)s"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:68
-msgid "Select a purchase order for"
+#, python-format
+msgid "Select a purchase order for %(name)s"
msgstr ""
#: order/templates/order/po_attachments.html:12
@@ -2907,43 +2936,29 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:185 part/templates/part/category.html:227
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:205
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:247
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:252
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr ""
@@ -2966,7 +2981,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
-#: users/models.py:38
+#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3019,6 +3034,10 @@ msgstr ""
msgid "Warning"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr ""
@@ -3213,65 +3232,65 @@ msgstr ""
msgid "No lines specified"
msgstr ""
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr ""
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr ""
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr ""
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr ""
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr ""
@@ -3457,7 +3476,7 @@ msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
#: templates/InvenTree/search.html:127 templates/stats.html:63
-#: users/models.py:37
+#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -4004,7 +4023,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2270
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr ""
@@ -4694,63 +4713,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2069
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2079
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2086
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2094
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2144
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2158
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2218
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2256
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2262
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2314
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2415
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2471
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2490
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2560
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2616
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr ""
@@ -5301,15 +5320,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:164
-#: stock/templates/stock/location.html:65 templates/stock_table.html:56
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
@@ -5503,7 +5522,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:39
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5689,7 +5708,7 @@ msgstr ""
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:180
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr ""
@@ -5867,6 +5886,31 @@ msgstr ""
msgid "No stock location set"
msgstr ""
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:29
+#, python-format
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr ""
@@ -5950,7 +5994,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:49
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr ""
@@ -5964,7 +6008,7 @@ msgid "Account"
msgstr ""
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
+msgid "Appearance"
msgstr ""
#: templates/InvenTree/settings/tabs.html:13
@@ -5983,22 +6027,6 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid "\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr ""
@@ -6061,13 +6089,23 @@ msgid "View Code on GitHub"
msgstr ""
#: templates/about.html:63
-msgid "Get the App"
+msgid "Credits"
msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr ""
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr ""
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -6263,7 +6301,7 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/build.js:638 templates/js/build.js:1056
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
@@ -6396,11 +6434,6 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr ""
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr ""
@@ -6974,6 +7007,10 @@ msgstr ""
msgid "Form errors exist"
msgstr ""
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr ""
@@ -6986,7 +7023,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr ""
@@ -7118,43 +7155,43 @@ msgstr ""
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:54
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
@@ -7190,35 +7227,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:167
+#: users/models.py:170
msgid "Permission set"
msgstr ""
-#: users/models.py:175
+#: users/models.py:178
msgid "Group"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "View"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "Permission to view items"
msgstr ""
-#: users/models.py:180
+#: users/models.py:183
msgid "Permission to add items"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Change"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:184
+#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.mo b/InvenTree/locale/it/LC_MESSAGES/django.mo
index 71cbdf3e9d..900921d249 100644
Binary files a/InvenTree/locale/it/LC_MESSAGES/django.mo and b/InvenTree/locale/it/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index 978d9186a4..69191acc73 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-21 09:17+0000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: 2021-04-21 09:33\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
@@ -67,35 +67,36 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:375 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr ""
-
-#: InvenTree/helpers.py:378
-msgid "Empty serial number string"
-msgstr ""
-
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 InvenTree/helpers.py:406 InvenTree/helpers.py:409
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:414
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:422
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:426
+#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -140,7 +141,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
@@ -165,23 +166,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:491
msgid "English"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:492
msgid "French"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:493
msgid "German"
msgstr ""
-#: InvenTree/settings.py:496
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:497
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr ""
@@ -375,16 +376,16 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1227
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
#: build/templates/build/detail.html:31 common/models.py:703
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
@@ -458,7 +459,7 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:445
+#: build/templates/build/detail.html:59 order/models.py:455
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
@@ -508,7 +509,7 @@ msgstr ""
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr ""
@@ -516,8 +517,8 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:195
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -540,10 +541,10 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:669
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
#: part/models.py:1876 part/models.py:1888 part/models.py:1906
@@ -628,7 +629,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr ""
@@ -678,9 +679,9 @@ msgstr ""
#: company/models.py:135 company/models.py:501
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:234
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
@@ -713,47 +714,47 @@ msgstr ""
msgid "Completed build output"
msgstr ""
-#: build/models.py:1118
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1143
+#: build/models.py:1157
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1147
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1151
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1158 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1162 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1166
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1206 stock/templates/stock/item_base.html:306
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1207
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1214 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
@@ -765,19 +766,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1215
+#: build/models.py:1229
msgid "Source stock item"
msgstr ""
-#: build/models.py:1228
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1236
+#: build/models.py:1250
msgid "Install into"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1251
msgid "Destination stock item"
msgstr ""
@@ -801,7 +802,7 @@ msgstr ""
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/allocate.html:26 build/views.py:308 build/views.py:794
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
msgstr ""
@@ -811,7 +812,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:794
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -954,7 +955,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1139,7 +1140,7 @@ msgstr ""
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
-#: build/templates/build/index.html:28 build/views.py:667
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr ""
@@ -1226,141 +1227,145 @@ msgstr ""
msgid "Create Build Output"
msgstr ""
-#: build/views.py:173 stock/models.py:969 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:182
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:248
+#: build/views.py:259
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:269 build/views.py:359
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:270 build/views.py:360 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:282
+#: build/views.py:293
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:284 build/views.py:485
+#: build/views.py:295 build/views.py:496
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:296
+#: build/views.py:307
msgid "Build output deleted"
msgstr ""
-#: build/views.py:394
+#: build/views.py:405
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:400
+#: build/views.py:411
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:411
+#: build/views.py:422
msgid "Completed build order"
msgstr ""
-#: build/views.py:427
+#: build/views.py:438
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:469
+#: build/views.py:480
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:476
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:581
+#: build/views.py:592
msgid "Build output completed"
msgstr ""
-#: build/views.py:721
+#: build/views.py:732
msgid "Created new build"
msgstr ""
-#: build/views.py:742
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr ""
-#: build/views.py:775
+#: build/views.py:786
msgid "Edited build"
msgstr ""
-#: build/views.py:784
+#: build/views.py:795
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:799
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:811
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr ""
-#: build/views.py:854
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr ""
-#: build/views.py:860
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:861 templates/js/bom.js:230 templates/js/build.js:575
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr ""
-#: build/views.py:863
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr ""
-#: build/views.py:1026
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:1030
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1059
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1072 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1108 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1118 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1128 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1133 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
@@ -1766,7 +1771,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:171
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
@@ -1865,7 +1870,7 @@ msgstr ""
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1372
+#: company/models.py:312 company/models.py:463 order/views.py:1384
msgid "Select part"
msgstr ""
@@ -1905,7 +1910,7 @@ msgstr ""
#: company/models.py:475 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
@@ -2017,7 +2022,8 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
+msgid ""
+"There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2033,7 +2039,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:440
+#: company/templates/company/detail.html:67 order/models.py:450
#: order/templates/order/sales_order_base.html:92 stock/models.py:415
#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
@@ -2122,13 +2128,13 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
+#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:74
+#: order/templates/order/purchase_order_detail.html:49
#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
msgid "New Supplier Part"
msgstr ""
@@ -2226,7 +2232,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:184
+#: stock/views.py:1002 users/models.py:187
msgid "Delete"
msgstr ""
@@ -2252,7 +2258,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2266,7 +2272,7 @@ msgstr ""
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr ""
@@ -2278,7 +2284,7 @@ msgstr ""
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr ""
@@ -2357,7 +2363,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2624
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr ""
@@ -2467,15 +2473,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2628
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2672
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2686
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr ""
@@ -2565,7 +2571,7 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:452
+#: order/forms.py:145 order/models.py:462
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
@@ -2601,7 +2607,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr ""
@@ -2642,8 +2648,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2651,120 +2657,128 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:359
+#: order/models.py:348
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:350
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:369
msgid "Received items"
msgstr ""
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr ""
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr ""
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr ""
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr ""
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr ""
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr ""
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:214
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr ""
-#: order/models.py:648 stock/models.py:508
+#: order/models.py:658 stock/models.py:508
#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr ""
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr ""
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr ""
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2812,9 +2826,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr ""
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
#: order/templates/order/order_complete.html:7
@@ -2826,10 +2853,10 @@ msgid "This order has line items which have not been marked as received."
msgstr ""
#: order/templates/order/order_complete.html:11
-msgid "Marking this order as complete will remove these line items."
+msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: order/templates/order/order_issue.html:7
+#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
@@ -2881,11 +2908,13 @@ msgid "Select Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:45
-msgid "Create new purchase order for {{ supplier.name }}"
+#, python-format
+msgid "Create new purchase order for %(name)s"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:68
-msgid "Select a purchase order for"
+#, python-format
+msgid "Select a purchase order for %(name)s"
msgstr ""
#: order/templates/order/po_attachments.html:12
@@ -2907,43 +2936,29 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:185 part/templates/part/category.html:227
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:205
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:247
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:252
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr ""
@@ -2966,7 +2981,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
-#: users/models.py:38
+#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3019,6 +3034,10 @@ msgstr ""
msgid "Warning"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr ""
@@ -3213,65 +3232,65 @@ msgstr ""
msgid "No lines specified"
msgstr ""
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr ""
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr ""
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr ""
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr ""
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr ""
@@ -3457,7 +3476,7 @@ msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
#: templates/InvenTree/search.html:127 templates/stats.html:63
-#: users/models.py:37
+#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -4004,7 +4023,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2270
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr ""
@@ -4694,63 +4713,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2069
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2079
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2086
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2094
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2144
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2158
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2218
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2256
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2262
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2314
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2415
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2471
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2490
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2560
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2616
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr ""
@@ -5301,15 +5320,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:164
-#: stock/templates/stock/location.html:65 templates/stock_table.html:56
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
@@ -5503,7 +5522,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:39
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5689,7 +5708,7 @@ msgstr ""
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:180
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr ""
@@ -5867,6 +5886,31 @@ msgstr ""
msgid "No stock location set"
msgstr ""
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:29
+#, python-format
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr ""
@@ -5950,7 +5994,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:49
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr ""
@@ -5964,7 +6008,7 @@ msgid "Account"
msgstr ""
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
+msgid "Appearance"
msgstr ""
#: templates/InvenTree/settings/tabs.html:13
@@ -5983,22 +6027,6 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid "\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr ""
@@ -6061,13 +6089,23 @@ msgid "View Code on GitHub"
msgstr ""
#: templates/about.html:63
-msgid "Get the App"
+msgid "Credits"
msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr ""
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr ""
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -6263,7 +6301,7 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/build.js:638 templates/js/build.js:1056
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
@@ -6396,11 +6434,6 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr ""
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr ""
@@ -6974,6 +7007,10 @@ msgstr ""
msgid "Form errors exist"
msgstr ""
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr ""
@@ -6986,7 +7023,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr ""
@@ -7118,43 +7155,43 @@ msgstr ""
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:54
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
@@ -7190,35 +7227,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:167
+#: users/models.py:170
msgid "Permission set"
msgstr ""
-#: users/models.py:175
+#: users/models.py:178
msgid "Group"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "View"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "Permission to view items"
msgstr ""
-#: users/models.py:180
+#: users/models.py:183
msgid "Permission to add items"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Change"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:184
+#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.mo b/InvenTree/locale/ja/LC_MESSAGES/django.mo
index 314bedb17d..c8fe740f6a 100644
Binary files a/InvenTree/locale/ja/LC_MESSAGES/django.mo and b/InvenTree/locale/ja/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 14111c5c02..23cec9e6fb 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-21 09:17+0000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: 2021-04-21 09:33\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
@@ -67,35 +67,36 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:375 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr ""
-
-#: InvenTree/helpers.py:378
-msgid "Empty serial number string"
-msgstr ""
-
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 InvenTree/helpers.py:406 InvenTree/helpers.py:409
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:414
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:422
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:426
+#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -140,7 +141,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
@@ -165,23 +166,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:491
msgid "English"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:492
msgid "French"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:493
msgid "German"
msgstr ""
-#: InvenTree/settings.py:496
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:497
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr ""
@@ -375,16 +376,16 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1227
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
#: build/templates/build/detail.html:31 common/models.py:703
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
@@ -458,7 +459,7 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:445
+#: build/templates/build/detail.html:59 order/models.py:455
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
@@ -508,7 +509,7 @@ msgstr ""
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr ""
@@ -516,8 +517,8 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:195
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -540,10 +541,10 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:669
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
#: part/models.py:1876 part/models.py:1888 part/models.py:1906
@@ -628,7 +629,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr ""
@@ -678,9 +679,9 @@ msgstr ""
#: company/models.py:135 company/models.py:501
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:234
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
@@ -713,47 +714,47 @@ msgstr ""
msgid "Completed build output"
msgstr ""
-#: build/models.py:1118
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1143
+#: build/models.py:1157
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1147
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1151
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1158 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1162 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1166
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1206 stock/templates/stock/item_base.html:306
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1207
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1214 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
@@ -765,19 +766,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1215
+#: build/models.py:1229
msgid "Source stock item"
msgstr ""
-#: build/models.py:1228
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1236
+#: build/models.py:1250
msgid "Install into"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1251
msgid "Destination stock item"
msgstr ""
@@ -801,7 +802,7 @@ msgstr ""
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/allocate.html:26 build/views.py:308 build/views.py:794
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
msgstr ""
@@ -811,7 +812,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:794
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -954,7 +955,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1139,7 +1140,7 @@ msgstr ""
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
-#: build/templates/build/index.html:28 build/views.py:667
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr ""
@@ -1226,141 +1227,145 @@ msgstr ""
msgid "Create Build Output"
msgstr ""
-#: build/views.py:173 stock/models.py:969 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:182
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:248
+#: build/views.py:259
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:269 build/views.py:359
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:270 build/views.py:360 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:282
+#: build/views.py:293
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:284 build/views.py:485
+#: build/views.py:295 build/views.py:496
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:296
+#: build/views.py:307
msgid "Build output deleted"
msgstr ""
-#: build/views.py:394
+#: build/views.py:405
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:400
+#: build/views.py:411
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:411
+#: build/views.py:422
msgid "Completed build order"
msgstr ""
-#: build/views.py:427
+#: build/views.py:438
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:469
+#: build/views.py:480
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:476
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:581
+#: build/views.py:592
msgid "Build output completed"
msgstr ""
-#: build/views.py:721
+#: build/views.py:732
msgid "Created new build"
msgstr ""
-#: build/views.py:742
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr ""
-#: build/views.py:775
+#: build/views.py:786
msgid "Edited build"
msgstr ""
-#: build/views.py:784
+#: build/views.py:795
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:799
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:811
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr ""
-#: build/views.py:854
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr ""
-#: build/views.py:860
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:861 templates/js/bom.js:230 templates/js/build.js:575
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr ""
-#: build/views.py:863
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr ""
-#: build/views.py:1026
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:1030
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1059
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1072 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1108 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1118 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1128 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1133 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
@@ -1766,7 +1771,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:171
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
@@ -1865,7 +1870,7 @@ msgstr ""
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1372
+#: company/models.py:312 company/models.py:463 order/views.py:1384
msgid "Select part"
msgstr ""
@@ -1905,7 +1910,7 @@ msgstr ""
#: company/models.py:475 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
@@ -2017,7 +2022,8 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
+msgid ""
+"There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2033,7 +2039,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:440
+#: company/templates/company/detail.html:67 order/models.py:450
#: order/templates/order/sales_order_base.html:92 stock/models.py:415
#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
@@ -2122,13 +2128,13 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
+#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:74
+#: order/templates/order/purchase_order_detail.html:49
#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
msgid "New Supplier Part"
msgstr ""
@@ -2226,7 +2232,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:184
+#: stock/views.py:1002 users/models.py:187
msgid "Delete"
msgstr ""
@@ -2252,7 +2258,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2266,7 +2272,7 @@ msgstr ""
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr ""
@@ -2278,7 +2284,7 @@ msgstr ""
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr ""
@@ -2357,7 +2363,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2624
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr ""
@@ -2467,15 +2473,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2628
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2672
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2686
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr ""
@@ -2565,7 +2571,7 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:452
+#: order/forms.py:145 order/models.py:462
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
@@ -2601,7 +2607,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr ""
@@ -2642,8 +2648,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2651,120 +2657,128 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:359
+#: order/models.py:348
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:350
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:369
msgid "Received items"
msgstr ""
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr ""
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr ""
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr ""
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr ""
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr ""
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr ""
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:214
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr ""
-#: order/models.py:648 stock/models.py:508
+#: order/models.py:658 stock/models.py:508
#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr ""
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr ""
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr ""
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2812,9 +2826,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr ""
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
#: order/templates/order/order_complete.html:7
@@ -2826,10 +2853,10 @@ msgid "This order has line items which have not been marked as received."
msgstr ""
#: order/templates/order/order_complete.html:11
-msgid "Marking this order as complete will remove these line items."
+msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: order/templates/order/order_issue.html:7
+#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
@@ -2881,11 +2908,13 @@ msgid "Select Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:45
-msgid "Create new purchase order for {{ supplier.name }}"
+#, python-format
+msgid "Create new purchase order for %(name)s"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:68
-msgid "Select a purchase order for"
+#, python-format
+msgid "Select a purchase order for %(name)s"
msgstr ""
#: order/templates/order/po_attachments.html:12
@@ -2907,43 +2936,29 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:185 part/templates/part/category.html:227
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:205
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:247
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:252
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr ""
@@ -2966,7 +2981,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
-#: users/models.py:38
+#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3019,6 +3034,10 @@ msgstr ""
msgid "Warning"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr ""
@@ -3213,65 +3232,65 @@ msgstr ""
msgid "No lines specified"
msgstr ""
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr ""
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr ""
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr ""
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr ""
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr ""
@@ -3457,7 +3476,7 @@ msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
#: templates/InvenTree/search.html:127 templates/stats.html:63
-#: users/models.py:37
+#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -4004,7 +4023,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2270
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr ""
@@ -4694,63 +4713,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2069
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2079
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2086
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2094
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2144
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2158
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2218
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2256
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2262
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2314
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2415
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2471
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2490
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2560
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2616
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr ""
@@ -5301,15 +5320,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:164
-#: stock/templates/stock/location.html:65 templates/stock_table.html:56
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
@@ -5503,7 +5522,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:39
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5689,7 +5708,7 @@ msgstr ""
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:180
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr ""
@@ -5867,6 +5886,31 @@ msgstr ""
msgid "No stock location set"
msgstr ""
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:29
+#, python-format
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr ""
@@ -5950,7 +5994,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:49
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr ""
@@ -5964,7 +6008,7 @@ msgid "Account"
msgstr ""
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
+msgid "Appearance"
msgstr ""
#: templates/InvenTree/settings/tabs.html:13
@@ -5983,22 +6027,6 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid "\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr ""
@@ -6061,13 +6089,23 @@ msgid "View Code on GitHub"
msgstr ""
#: templates/about.html:63
-msgid "Get the App"
+msgid "Credits"
msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr ""
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr ""
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -6263,7 +6301,7 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/build.js:638 templates/js/build.js:1056
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
@@ -6396,11 +6434,6 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr ""
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr ""
@@ -6974,6 +7007,10 @@ msgstr ""
msgid "Form errors exist"
msgstr ""
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr ""
@@ -6986,7 +7023,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr ""
@@ -7118,43 +7155,43 @@ msgstr ""
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:54
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
@@ -7190,34 +7227,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:167
+#: users/models.py:170
msgid "Permission set"
msgstr ""
-#: users/models.py:175
+#: users/models.py:178
msgid "Group"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "View"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "Permission to view items"
msgstr ""
-#: users/models.py:180
+#: users/models.py:183
msgid "Permission to add items"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Change"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:184
+#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.mo b/InvenTree/locale/pl/LC_MESSAGES/django.mo
index 16fcd00009..89d5c273e3 100644
Binary files a/InvenTree/locale/pl/LC_MESSAGES/django.mo and b/InvenTree/locale/pl/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 8f82a13ba3..edc3b32d2b 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-21 09:17+0000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: 2021-04-21 09:33\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
@@ -67,35 +67,36 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:375 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr ""
-
-#: InvenTree/helpers.py:378
-msgid "Empty serial number string"
-msgstr ""
-
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 InvenTree/helpers.py:406 InvenTree/helpers.py:409
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:414
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:422
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:426
+#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -140,7 +141,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
@@ -165,23 +166,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:491
msgid "English"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:492
msgid "French"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:493
msgid "German"
msgstr ""
-#: InvenTree/settings.py:496
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:497
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr ""
@@ -375,16 +376,16 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1227
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
#: build/templates/build/detail.html:31 common/models.py:703
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
@@ -458,7 +459,7 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:445
+#: build/templates/build/detail.html:59 order/models.py:455
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
@@ -508,7 +509,7 @@ msgstr ""
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr ""
@@ -516,8 +517,8 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:195
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -540,10 +541,10 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:669
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
#: part/models.py:1876 part/models.py:1888 part/models.py:1906
@@ -628,7 +629,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr ""
@@ -678,9 +679,9 @@ msgstr ""
#: company/models.py:135 company/models.py:501
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:234
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
@@ -713,47 +714,47 @@ msgstr ""
msgid "Completed build output"
msgstr ""
-#: build/models.py:1118
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1143
+#: build/models.py:1157
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1147
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1151
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1158 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1162 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1166
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1206 stock/templates/stock/item_base.html:306
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1207
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1214 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
@@ -765,19 +766,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1215
+#: build/models.py:1229
msgid "Source stock item"
msgstr ""
-#: build/models.py:1228
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1236
+#: build/models.py:1250
msgid "Install into"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1251
msgid "Destination stock item"
msgstr ""
@@ -801,7 +802,7 @@ msgstr ""
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/allocate.html:26 build/views.py:308 build/views.py:794
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
msgstr ""
@@ -811,7 +812,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:794
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -954,7 +955,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1139,7 +1140,7 @@ msgstr ""
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
-#: build/templates/build/index.html:28 build/views.py:667
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr ""
@@ -1226,141 +1227,145 @@ msgstr ""
msgid "Create Build Output"
msgstr ""
-#: build/views.py:173 stock/models.py:969 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:182
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:248
+#: build/views.py:259
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:269 build/views.py:359
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:270 build/views.py:360 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:282
+#: build/views.py:293
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:284 build/views.py:485
+#: build/views.py:295 build/views.py:496
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:296
+#: build/views.py:307
msgid "Build output deleted"
msgstr ""
-#: build/views.py:394
+#: build/views.py:405
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:400
+#: build/views.py:411
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:411
+#: build/views.py:422
msgid "Completed build order"
msgstr ""
-#: build/views.py:427
+#: build/views.py:438
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:469
+#: build/views.py:480
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:476
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:581
+#: build/views.py:592
msgid "Build output completed"
msgstr ""
-#: build/views.py:721
+#: build/views.py:732
msgid "Created new build"
msgstr ""
-#: build/views.py:742
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr ""
-#: build/views.py:775
+#: build/views.py:786
msgid "Edited build"
msgstr ""
-#: build/views.py:784
+#: build/views.py:795
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:799
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:811
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr ""
-#: build/views.py:854
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr ""
-#: build/views.py:860
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:861 templates/js/bom.js:230 templates/js/build.js:575
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr ""
-#: build/views.py:863
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr ""
-#: build/views.py:1026
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:1030
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1059
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1072 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1108 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1118 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1128 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1133 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
@@ -1766,7 +1771,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:171
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
@@ -1865,7 +1870,7 @@ msgstr ""
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1372
+#: company/models.py:312 company/models.py:463 order/views.py:1384
msgid "Select part"
msgstr ""
@@ -1905,7 +1910,7 @@ msgstr ""
#: company/models.py:475 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
@@ -2017,7 +2022,8 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
+msgid ""
+"There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2033,7 +2039,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:440
+#: company/templates/company/detail.html:67 order/models.py:450
#: order/templates/order/sales_order_base.html:92 stock/models.py:415
#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
@@ -2122,13 +2128,13 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
+#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:74
+#: order/templates/order/purchase_order_detail.html:49
#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
msgid "New Supplier Part"
msgstr ""
@@ -2226,7 +2232,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:184
+#: stock/views.py:1002 users/models.py:187
msgid "Delete"
msgstr ""
@@ -2252,7 +2258,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2266,7 +2272,7 @@ msgstr ""
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr ""
@@ -2278,7 +2284,7 @@ msgstr ""
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr ""
@@ -2357,7 +2363,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2624
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr ""
@@ -2467,15 +2473,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2628
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2672
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2686
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr ""
@@ -2565,7 +2571,7 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:452
+#: order/forms.py:145 order/models.py:462
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
@@ -2601,7 +2607,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr ""
@@ -2642,8 +2648,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2651,120 +2657,128 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:359
+#: order/models.py:348
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:350
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:369
msgid "Received items"
msgstr ""
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr ""
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr ""
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr ""
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr ""
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr ""
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr ""
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:214
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr ""
-#: order/models.py:648 stock/models.py:508
+#: order/models.py:658 stock/models.py:508
#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr ""
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr ""
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr ""
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2812,9 +2826,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr ""
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
#: order/templates/order/order_complete.html:7
@@ -2826,10 +2853,10 @@ msgid "This order has line items which have not been marked as received."
msgstr ""
#: order/templates/order/order_complete.html:11
-msgid "Marking this order as complete will remove these line items."
+msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: order/templates/order/order_issue.html:7
+#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
@@ -2881,11 +2908,13 @@ msgid "Select Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:45
-msgid "Create new purchase order for {{ supplier.name }}"
+#, python-format
+msgid "Create new purchase order for %(name)s"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:68
-msgid "Select a purchase order for"
+#, python-format
+msgid "Select a purchase order for %(name)s"
msgstr ""
#: order/templates/order/po_attachments.html:12
@@ -2907,43 +2936,29 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:185 part/templates/part/category.html:227
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:205
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:247
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:252
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr ""
@@ -2966,7 +2981,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
-#: users/models.py:38
+#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3019,6 +3034,10 @@ msgstr ""
msgid "Warning"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr ""
@@ -3213,65 +3232,65 @@ msgstr ""
msgid "No lines specified"
msgstr ""
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr ""
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr ""
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr ""
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr ""
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr ""
@@ -3457,7 +3476,7 @@ msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
#: templates/InvenTree/search.html:127 templates/stats.html:63
-#: users/models.py:37
+#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -4004,7 +4023,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2270
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr ""
@@ -4694,63 +4713,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2069
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2079
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2086
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2094
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2144
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2158
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2218
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2256
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2262
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2314
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2415
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2471
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2490
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2560
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2616
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr ""
@@ -5301,15 +5320,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:164
-#: stock/templates/stock/location.html:65 templates/stock_table.html:56
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
@@ -5503,7 +5522,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:39
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5689,7 +5708,7 @@ msgstr ""
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:180
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr ""
@@ -5867,6 +5886,31 @@ msgstr ""
msgid "No stock location set"
msgstr ""
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:29
+#, python-format
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr ""
@@ -5950,7 +5994,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:49
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr ""
@@ -5964,7 +6008,7 @@ msgid "Account"
msgstr ""
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
+msgid "Appearance"
msgstr ""
#: templates/InvenTree/settings/tabs.html:13
@@ -5983,22 +6027,6 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid "\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr ""
@@ -6061,13 +6089,23 @@ msgid "View Code on GitHub"
msgstr ""
#: templates/about.html:63
-msgid "Get the App"
+msgid "Credits"
msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr ""
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr ""
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -6263,7 +6301,7 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/build.js:638 templates/js/build.js:1056
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
@@ -6396,11 +6434,6 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr ""
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr ""
@@ -6974,6 +7007,10 @@ msgstr ""
msgid "Form errors exist"
msgstr ""
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr ""
@@ -6986,7 +7023,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr ""
@@ -7118,43 +7155,43 @@ msgstr ""
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:54
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
@@ -7190,34 +7227,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:167
+#: users/models.py:170
msgid "Permission set"
msgstr ""
-#: users/models.py:175
+#: users/models.py:178
msgid "Group"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "View"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "Permission to view items"
msgstr ""
-#: users/models.py:180
+#: users/models.py:183
msgid "Permission to add items"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Change"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:184
+#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.mo b/InvenTree/locale/ru/LC_MESSAGES/django.mo
index 7007a3d4e5..45a221f872 100644
Binary files a/InvenTree/locale/ru/LC_MESSAGES/django.mo and b/InvenTree/locale/ru/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index e77638edc6..d14c214d50 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-21 09:17+0000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: 2021-04-21 09:33\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
@@ -67,35 +67,36 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:375 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr ""
-
-#: InvenTree/helpers.py:378
-msgid "Empty serial number string"
-msgstr ""
-
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 InvenTree/helpers.py:406 InvenTree/helpers.py:409
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:414
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:422
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:426
+#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -140,7 +141,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
@@ -165,23 +166,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:491
msgid "English"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:492
msgid "French"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:493
msgid "German"
msgstr ""
-#: InvenTree/settings.py:496
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:497
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr ""
@@ -375,16 +376,16 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1227
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
#: build/templates/build/detail.html:31 common/models.py:703
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
@@ -458,7 +459,7 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:445
+#: build/templates/build/detail.html:59 order/models.py:455
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
@@ -508,7 +509,7 @@ msgstr ""
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr ""
@@ -516,8 +517,8 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:195
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -540,10 +541,10 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:669
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
#: part/models.py:1876 part/models.py:1888 part/models.py:1906
@@ -628,7 +629,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr ""
@@ -678,9 +679,9 @@ msgstr ""
#: company/models.py:135 company/models.py:501
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:234
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
@@ -713,47 +714,47 @@ msgstr ""
msgid "Completed build output"
msgstr ""
-#: build/models.py:1118
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1143
+#: build/models.py:1157
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1147
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1151
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1158 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1162 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1166
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1206 stock/templates/stock/item_base.html:306
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1207
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1214 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
@@ -765,19 +766,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1215
+#: build/models.py:1229
msgid "Source stock item"
msgstr ""
-#: build/models.py:1228
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1236
+#: build/models.py:1250
msgid "Install into"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1251
msgid "Destination stock item"
msgstr ""
@@ -801,7 +802,7 @@ msgstr ""
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/allocate.html:26 build/views.py:308 build/views.py:794
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
msgstr ""
@@ -811,7 +812,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:794
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -954,7 +955,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1139,7 +1140,7 @@ msgstr ""
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
-#: build/templates/build/index.html:28 build/views.py:667
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr ""
@@ -1226,141 +1227,145 @@ msgstr ""
msgid "Create Build Output"
msgstr ""
-#: build/views.py:173 stock/models.py:969 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:182
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:248
+#: build/views.py:259
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:269 build/views.py:359
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:270 build/views.py:360 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:282
+#: build/views.py:293
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:284 build/views.py:485
+#: build/views.py:295 build/views.py:496
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:296
+#: build/views.py:307
msgid "Build output deleted"
msgstr ""
-#: build/views.py:394
+#: build/views.py:405
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:400
+#: build/views.py:411
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:411
+#: build/views.py:422
msgid "Completed build order"
msgstr ""
-#: build/views.py:427
+#: build/views.py:438
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:469
+#: build/views.py:480
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:476
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:581
+#: build/views.py:592
msgid "Build output completed"
msgstr ""
-#: build/views.py:721
+#: build/views.py:732
msgid "Created new build"
msgstr ""
-#: build/views.py:742
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr ""
-#: build/views.py:775
+#: build/views.py:786
msgid "Edited build"
msgstr ""
-#: build/views.py:784
+#: build/views.py:795
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:799
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:811
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr ""
-#: build/views.py:854
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr ""
-#: build/views.py:860
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:861 templates/js/bom.js:230 templates/js/build.js:575
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr ""
-#: build/views.py:863
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr ""
-#: build/views.py:1026
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:1030
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1059
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1072 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1108 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1118 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1128 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1133 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
@@ -1766,7 +1771,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:171
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
@@ -1865,7 +1870,7 @@ msgstr ""
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1372
+#: company/models.py:312 company/models.py:463 order/views.py:1384
msgid "Select part"
msgstr ""
@@ -1905,7 +1910,7 @@ msgstr ""
#: company/models.py:475 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
@@ -2017,7 +2022,8 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
+msgid ""
+"There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2033,7 +2039,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:440
+#: company/templates/company/detail.html:67 order/models.py:450
#: order/templates/order/sales_order_base.html:92 stock/models.py:415
#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
@@ -2122,13 +2128,13 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
+#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:74
+#: order/templates/order/purchase_order_detail.html:49
#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
msgid "New Supplier Part"
msgstr ""
@@ -2226,7 +2232,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:184
+#: stock/views.py:1002 users/models.py:187
msgid "Delete"
msgstr ""
@@ -2252,7 +2258,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2266,7 +2272,7 @@ msgstr ""
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr ""
@@ -2278,7 +2284,7 @@ msgstr ""
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr ""
@@ -2357,7 +2363,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2624
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr ""
@@ -2467,15 +2473,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2628
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2672
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2686
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr ""
@@ -2565,7 +2571,7 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:452
+#: order/forms.py:145 order/models.py:462
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
@@ -2601,7 +2607,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr ""
@@ -2642,8 +2648,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2651,120 +2657,128 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:359
+#: order/models.py:348
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:350
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:369
msgid "Received items"
msgstr ""
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr ""
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr ""
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr ""
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr ""
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr ""
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr ""
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:214
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr ""
-#: order/models.py:648 stock/models.py:508
+#: order/models.py:658 stock/models.py:508
#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr ""
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr ""
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr ""
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2812,9 +2826,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr ""
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
#: order/templates/order/order_complete.html:7
@@ -2826,10 +2853,10 @@ msgid "This order has line items which have not been marked as received."
msgstr ""
#: order/templates/order/order_complete.html:11
-msgid "Marking this order as complete will remove these line items."
+msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: order/templates/order/order_issue.html:7
+#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
@@ -2881,11 +2908,13 @@ msgid "Select Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:45
-msgid "Create new purchase order for {{ supplier.name }}"
+#, python-format
+msgid "Create new purchase order for %(name)s"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:68
-msgid "Select a purchase order for"
+#, python-format
+msgid "Select a purchase order for %(name)s"
msgstr ""
#: order/templates/order/po_attachments.html:12
@@ -2907,43 +2936,29 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:185 part/templates/part/category.html:227
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:205
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:247
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:252
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr ""
@@ -2966,7 +2981,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
-#: users/models.py:38
+#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3019,6 +3034,10 @@ msgstr ""
msgid "Warning"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr ""
@@ -3213,65 +3232,65 @@ msgstr ""
msgid "No lines specified"
msgstr ""
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr ""
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr ""
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr ""
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr ""
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr ""
@@ -3457,7 +3476,7 @@ msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
#: templates/InvenTree/search.html:127 templates/stats.html:63
-#: users/models.py:37
+#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -4004,7 +4023,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2270
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr ""
@@ -4694,63 +4713,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2069
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2079
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2086
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2094
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2144
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2158
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2218
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2256
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2262
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2314
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2415
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2471
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2490
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2560
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2616
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr ""
@@ -5301,15 +5320,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:164
-#: stock/templates/stock/location.html:65 templates/stock_table.html:56
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
@@ -5503,7 +5522,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:39
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5689,7 +5708,7 @@ msgstr ""
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:180
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr ""
@@ -5867,6 +5886,31 @@ msgstr ""
msgid "No stock location set"
msgstr ""
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:29
+#, python-format
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr ""
@@ -5950,7 +5994,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:49
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr ""
@@ -5964,7 +6008,7 @@ msgid "Account"
msgstr ""
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
+msgid "Appearance"
msgstr ""
#: templates/InvenTree/settings/tabs.html:13
@@ -5983,22 +6027,6 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid "\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr ""
@@ -6061,13 +6089,23 @@ msgid "View Code on GitHub"
msgstr ""
#: templates/about.html:63
-msgid "Get the App"
+msgid "Credits"
msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr ""
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr ""
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -6263,7 +6301,7 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/build.js:638 templates/js/build.js:1056
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
@@ -6396,11 +6434,6 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr ""
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr ""
@@ -6974,6 +7007,10 @@ msgstr ""
msgid "Form errors exist"
msgstr ""
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr ""
@@ -6986,7 +7023,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr ""
@@ -7118,43 +7155,43 @@ msgstr ""
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:54
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
@@ -7190,34 +7227,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:167
+#: users/models.py:170
msgid "Permission set"
msgstr ""
-#: users/models.py:175
+#: users/models.py:178
msgid "Group"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "View"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "Permission to view items"
msgstr ""
-#: users/models.py:180
+#: users/models.py:183
msgid "Permission to add items"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Change"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:184
+#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index b8105d1fde..db257af1fe 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-21 22:29+1000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -73,35 +73,36 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:375 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr ""
-
-#: InvenTree/helpers.py:378
-msgid "Empty serial number string"
-msgstr ""
-
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 InvenTree/helpers.py:406 InvenTree/helpers.py:409
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:414
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:422
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:426
+#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -146,7 +147,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
@@ -171,23 +172,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:491
msgid "English"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:492
msgid "French"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:493
msgid "German"
msgstr ""
-#: InvenTree/settings.py:496
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:497
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr ""
@@ -378,20 +379,19 @@ msgid "Target Date"
msgstr ""
#: build/forms.py:43 build/models.py:224
-msgid ""
-"Target date for build completion. Build will be overdue after this date."
+msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1227
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
#: build/templates/build/detail.html:31 common/models.py:703
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
@@ -465,7 +465,7 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:445
+#: build/templates/build/detail.html:59 order/models.py:455
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
@@ -515,7 +515,7 @@ msgstr ""
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr ""
@@ -523,8 +523,8 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:195
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -547,10 +547,10 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:669
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
#: part/models.py:1876 part/models.py:1888 part/models.py:1906
@@ -587,9 +587,7 @@ msgid "Source Location"
msgstr ""
#: build/models.py:178
-msgid ""
-"Select location to take stock from for this build (leave blank to take from "
-"any stock location)"
+msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
#: build/models.py:183
@@ -637,7 +635,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr ""
@@ -687,9 +685,9 @@ msgstr ""
#: company/models.py:135 company/models.py:501
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:234
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
@@ -722,48 +720,47 @@ msgstr ""
msgid "Completed build output"
msgstr ""
-#: build/models.py:1118
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1143
-msgid ""
-"Build item must specify a build output, as master part is marked as trackable"
+#: build/models.py:1157
+msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1147
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1151
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1158 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1162 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1166
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1206 stock/templates/stock/item_base.html:306
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1207
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1214 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
@@ -775,19 +772,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1215
+#: build/models.py:1229
msgid "Source stock item"
msgstr ""
-#: build/models.py:1228
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1236
+#: build/models.py:1250
msgid "Install into"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1251
msgid "Destination stock item"
msgstr ""
@@ -811,7 +808,7 @@ msgstr ""
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/allocate.html:26 build/views.py:308 build/views.py:794
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
msgstr ""
@@ -821,7 +818,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:794
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -862,8 +859,7 @@ msgid "Automatically Allocate Stock"
msgstr ""
#: build/templates/build/auto_allocate.html:10
-msgid ""
-"The following stock items will be allocated to the specified build output"
+msgid "The following stock items will be allocated to the specified build output"
msgstr ""
#: build/templates/build/auto_allocate.html:37
@@ -965,7 +961,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1089,9 +1085,7 @@ msgstr ""
#: build/templates/build/create_build_item.html:11
#, python-format
-msgid ""
-"The allocated stock will be installed into the following build output:
"
-"%(output)s"
+msgid "The allocated stock will be installed into the following build output:
%(output)s"
msgstr ""
#: build/templates/build/create_build_item.html:17
@@ -1152,7 +1146,7 @@ msgstr ""
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
-#: build/templates/build/index.html:28 build/views.py:667
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr ""
@@ -1239,141 +1233,145 @@ msgstr ""
msgid "Create Build Output"
msgstr ""
-#: build/views.py:173 stock/models.py:969 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:182
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:248
+#: build/views.py:259
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:269 build/views.py:359
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:270 build/views.py:360 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:282
+#: build/views.py:293
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:284 build/views.py:485
+#: build/views.py:295 build/views.py:496
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:296
+#: build/views.py:307
msgid "Build output deleted"
msgstr ""
-#: build/views.py:394
+#: build/views.py:405
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:400
+#: build/views.py:411
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:411
+#: build/views.py:422
msgid "Completed build order"
msgstr ""
-#: build/views.py:427
+#: build/views.py:438
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:469
+#: build/views.py:480
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:476
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:581
+#: build/views.py:592
msgid "Build output completed"
msgstr ""
-#: build/views.py:721
+#: build/views.py:732
msgid "Created new build"
msgstr ""
-#: build/views.py:742
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr ""
-#: build/views.py:775
+#: build/views.py:786
msgid "Edited build"
msgstr ""
-#: build/views.py:784
+#: build/views.py:795
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:799
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:811
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr ""
-#: build/views.py:854
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr ""
-#: build/views.py:860
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:861 templates/js/bom.js:230 templates/js/build.js:575
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr ""
-#: build/views.py:863
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr ""
-#: build/views.py:1026
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:1030
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1059
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1072 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1108 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1118 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1128 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1133 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
@@ -1779,7 +1777,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:171
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
@@ -1878,7 +1876,7 @@ msgstr ""
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1372
+#: company/models.py:312 company/models.py:463 order/views.py:1384
msgid "Select part"
msgstr ""
@@ -1918,7 +1916,7 @@ msgstr ""
#: company/models.py:475 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
@@ -2032,8 +2030,7 @@ msgstr ""
#, python-format
msgid ""
"There are %(count)s parts sourced from this company.
\n"
-"If this supplier is deleted, these supplier part entries will also be "
-"deleted."
+"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
#: company/templates/company/detail.html:21
@@ -2048,7 +2045,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:440
+#: company/templates/company/detail.html:67 order/models.py:450
#: order/templates/order/sales_order_base.html:92 stock/models.py:415
#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
@@ -2137,13 +2134,13 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
+#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:74
+#: order/templates/order/purchase_order_detail.html:49
#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
msgid "New Supplier Part"
msgstr ""
@@ -2197,9 +2194,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_delete.html:36
#, python-format
-msgid ""
-"There are %(count)s suppliers defined for this manufacturer part. If you "
-"delete it, the following supplier parts will also be deleted:"
+msgid "There are %(count)s suppliers defined for this manufacturer part. If you delete it, the following supplier parts will also be deleted:"
msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:14
@@ -2243,7 +2238,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:184
+#: stock/views.py:1002 users/models.py:187
msgid "Delete"
msgstr ""
@@ -2269,7 +2264,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2283,7 +2278,7 @@ msgstr ""
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr ""
@@ -2295,7 +2290,7 @@ msgstr ""
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr ""
@@ -2374,7 +2369,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2624
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr ""
@@ -2484,15 +2479,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2628
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2672
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2686
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr ""
@@ -2582,9 +2577,8 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:452
-msgid ""
-"Target date for order completion. Order will be overdue after this date."
+#: order/forms.py:145 order/models.py:462
+msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
#: order/forms.py:235
@@ -2619,7 +2613,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr ""
@@ -2653,16 +2647,15 @@ msgid "Target Delivery Date"
msgstr ""
#: order/models.py:213
-msgid ""
-"Expected date for order delivery. Order will be overdue after this date."
+msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
#: order/models.py:219
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2670,120 +2663,128 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:359
+#: order/models.py:348
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:350
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:369
msgid "Received items"
msgstr ""
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr ""
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr ""
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr ""
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr ""
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr ""
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr ""
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:214
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr ""
-#: order/models.py:648 stock/models.py:508
+#: order/models.py:658 stock/models.py:508
#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr ""
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr ""
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr ""
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2831,9 +2832,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr ""
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
#: order/templates/order/order_complete.html:7
@@ -2845,12 +2859,11 @@ msgid "This order has line items which have not been marked as received."
msgstr ""
#: order/templates/order/order_complete.html:11
-msgid "Marking this order as complete will remove these line items."
+msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: order/templates/order/order_issue.html:7
-msgid ""
-"After placing this purchase order, line items will no longer be editable."
+#: order/templates/order/order_issue.html:8
+msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
#: order/templates/order/order_notes.html:13
@@ -2929,43 +2942,29 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:185 part/templates/part/category.html:227
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:205
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:247
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:252
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr ""
@@ -2988,7 +2987,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
-#: users/models.py:38
+#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3041,6 +3040,10 @@ msgstr ""
msgid "Warning"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr ""
@@ -3103,9 +3106,7 @@ msgid "Sales Order Notes"
msgstr ""
#: order/templates/order/sales_order_ship.html:10
-msgid ""
-"This order has not been fully allocated. If the order is marked as shipped, "
-"it can no longer be adjusted."
+msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
msgstr ""
#: order/templates/order/sales_order_ship.html:12
@@ -3237,65 +3238,65 @@ msgstr ""
msgid "No lines specified"
msgstr ""
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr ""
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr ""
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr ""
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr ""
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr ""
@@ -3481,7 +3482,7 @@ msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
#: templates/InvenTree/search.html:127 templates/stats.html:63
-#: users/models.py:37
+#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -3826,9 +3827,7 @@ msgid "Select Related Part"
msgstr ""
#: part/models.py:2440
-msgid ""
-"Error creating relationship: check that the part is not related to itself "
-"and that the relationship is unique"
+msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
#: part/templates/part/allocation.html:11
@@ -3859,8 +3858,7 @@ msgstr ""
#: part/templates/part/bom.html:21
#, python-format
-msgid ""
-"The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
+msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
#: part/templates/part/bom.html:25
@@ -3995,8 +3993,7 @@ msgid "Requirements for BOM upload"
msgstr ""
#: part/templates/part/bom_upload/upload_file.html:21
-msgid ""
-"The BOM file must contain the required named columns as provided in the "
+msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
#: part/templates/part/bom_upload/upload_file.html:21
@@ -4013,8 +4010,7 @@ msgstr ""
#: part/templates/part/bom_validate.html:6
#, python-format
-msgid ""
-"Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
+msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
msgstr ""
#: part/templates/part/bom_validate.html:9
@@ -4033,7 +4029,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2270
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr ""
@@ -4115,8 +4111,7 @@ msgid "This category contains %(count)s child categories"
msgstr ""
#: part/templates/part/category_delete.html:9
-msgid ""
-"If this category is deleted, these child categories will be moved to the"
+msgid "If this category is deleted, these child categories will be moved to the"
msgstr ""
#: part/templates/part/category_delete.html:11
@@ -4134,15 +4129,11 @@ msgstr ""
#: part/templates/part/category_delete.html:27
#, python-format
-msgid ""
-"If this category is deleted, these parts will be moved to the parent "
-"category %(path)s"
+msgid "If this category is deleted, these parts will be moved to the parent category %(path)s"
msgstr ""
#: part/templates/part/category_delete.html:29
-msgid ""
-"If this category is deleted, these parts will be moved to the top-level "
-"category Teile"
+msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
#: part/templates/part/category_navbar.html:34
@@ -4489,37 +4480,27 @@ msgstr ""
#: part/templates/part/partial_delete.html:12
#, python-format
-msgid ""
-"This part is used in BOMs for %(count)s other parts. If you delete this "
-"part, the BOMs for the following parts will be updated"
+msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated"
msgstr ""
#: part/templates/part/partial_delete.html:22
#, python-format
-msgid ""
-"There are %(count)s stock entries defined for this part. If you delete this "
-"part, the following stock entries will also be deleted:"
+msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:"
msgstr ""
#: part/templates/part/partial_delete.html:33
#, python-format
-msgid ""
-"There are %(count)s manufacturers defined for this part. If you delete this "
-"part, the following manufacturer parts will also be deleted:"
+msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:"
msgstr ""
#: part/templates/part/partial_delete.html:44
#, python-format
-msgid ""
-"There are %(count)s suppliers defined for this part. If you delete this "
-"part, the following supplier parts will also be deleted:"
+msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:"
msgstr ""
#: part/templates/part/partial_delete.html:55
#, python-format
-msgid ""
-"There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this "
-"part will permanently remove this tracking information."
+msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
#: part/templates/part/related.html:18
@@ -4738,63 +4719,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2069
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2079
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2086
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2094
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2144
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2158
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2218
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2256
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2262
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2314
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2415
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2471
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2490
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2560
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2616
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr ""
@@ -4942,9 +4923,7 @@ msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
#: stock/forms.py:169
-msgid ""
-"Destination for serialized stock (by default, will remain in current "
-"location)"
+msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
#: stock/forms.py:171
@@ -5126,8 +5105,7 @@ msgid "Destination Sales Order"
msgstr ""
#: stock/models.py:476
-msgid ""
-"Expiry date for stock item. Stock will be considered expired after this date"
+msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
#: stock/models.py:489
@@ -5274,9 +5252,7 @@ msgid "Stock Item Attachments"
msgstr ""
#: stock/templates/stock/item_base.html:24
-msgid ""
-"You are not in the list of owners of this item. This stock item cannot be "
-"edited."
+msgid "You are not in the list of owners of this item. This stock item cannot be edited."
msgstr ""
#: stock/templates/stock/item_base.html:31
@@ -5293,8 +5269,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:53
#, python-format
-msgid ""
-"This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
#: stock/templates/stock/item_base.html:61
@@ -5303,9 +5278,7 @@ msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
#: stock/templates/stock/item_base.html:67
-msgid ""
-"This stock item is serialized - it has a unique serial number and the "
-"quantity cannot be adjusted."
+msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr ""
#: stock/templates/stock/item_base.html:71
@@ -5313,8 +5286,7 @@ msgid "This stock item cannot be deleted as it has child items"
msgstr ""
#: stock/templates/stock/item_base.html:75
-msgid ""
-"This stock item will be automatically deleted when all stock is depleted."
+msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
#: stock/templates/stock/item_base.html:95
@@ -5354,15 +5326,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:164
-#: stock/templates/stock/location.html:65 templates/stock_table.html:56
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
@@ -5463,8 +5435,7 @@ msgstr ""
#: stock/templates/stock/item_delete.html:12
#, python-format
-msgid ""
-"This will remove %(qty)s units of %(full_name)s from stock."
+msgid "This will remove %(qty)s units of %(full_name)s from stock."
msgstr ""
#: stock/templates/stock/item_install.html:7
@@ -5510,9 +5481,7 @@ msgid "Add Test Data"
msgstr ""
#: stock/templates/stock/location.html:20
-msgid ""
-"You are not in the list of owners of this location. This stock location "
-"cannot be edited."
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
#: stock/templates/stock/location.html:37
@@ -5559,7 +5528,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:39
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5745,7 +5714,7 @@ msgstr ""
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:180
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr ""
@@ -5923,6 +5892,31 @@ msgstr ""
msgid "No stock location set"
msgstr ""
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:29
+#, python-format
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr ""
@@ -6006,7 +6000,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:49
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr ""
@@ -6020,7 +6014,7 @@ msgid "Account"
msgstr ""
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
+msgid "Appearance"
msgstr ""
#: templates/InvenTree/settings/tabs.html:13
@@ -6039,24 +6033,6 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid ""
-"\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected "
-"color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr ""
@@ -6119,13 +6095,23 @@ msgid "View Code on GitHub"
msgstr ""
#: templates/about.html:63
-msgid "Get the App"
+msgid "Credits"
msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr ""
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr ""
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -6203,8 +6189,7 @@ msgid "Link Barcode to Stock Item"
msgstr ""
#: templates/js/barcode.js:311
-msgid ""
-"This will remove the association between this stock item and the barcode"
+msgid "This will remove the association between this stock item and the barcode"
msgstr ""
#: templates/js/barcode.js:317
@@ -6322,7 +6307,7 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/build.js:638 templates/js/build.js:1056
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
@@ -6455,11 +6440,6 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr ""
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr ""
@@ -7033,6 +7013,10 @@ msgstr ""
msgid "Form errors exist"
msgstr ""
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr ""
@@ -7045,7 +7029,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr ""
@@ -7106,21 +7090,15 @@ msgid "Change password"
msgstr ""
#: templates/registration/password_reset_confirm.html:61
-msgid ""
-"The password reset link was invalid, possibly because it has already been "
-"used. Please request a new password reset."
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
#: templates/registration/password_reset_done.html:52
-msgid ""
-"We've emailed you instructions for setting your password, if an account "
-"exists with the email you entered. You should receive them shortly."
+msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly."
msgstr ""
#: templates/registration/password_reset_done.html:55
-msgid ""
-"If you don't receive an email, please make sure you've entered the address "
-"you registered with, and check your spam folder."
+msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder."
msgstr ""
#: templates/registration/password_reset_form.html:53
@@ -7183,43 +7161,43 @@ msgstr ""
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:54
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
@@ -7255,34 +7233,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:167
+#: users/models.py:170
msgid "Permission set"
msgstr ""
-#: users/models.py:175
+#: users/models.py:178
msgid "Group"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "View"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "Permission to view items"
msgstr ""
-#: users/models.py:180
+#: users/models.py:183
msgid "Permission to add items"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Change"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:184
+#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.mo b/InvenTree/locale/zh/LC_MESSAGES/django.mo
index 6c5906d1cd..d02b517fab 100644
Binary files a/InvenTree/locale/zh/LC_MESSAGES/django.mo and b/InvenTree/locale/zh/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 2534d27c42..2075ec9326 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,7 +2,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-04-21 09:17+0000\n"
+"POT-Creation-Date: 2021-05-05 17:33+1000\n"
"PO-Revision-Date: 2021-04-21 09:33\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
@@ -67,35 +67,36 @@ msgstr ""
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:375 order/models.py:245 order/models.py:344
-#: stock/views.py:1763
-msgid "Invalid quantity provided"
-msgstr ""
-
-#: InvenTree/helpers.py:378
-msgid "Empty serial number string"
-msgstr ""
-
-#: InvenTree/helpers.py:399
+#: InvenTree/helpers.py:377
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:403 InvenTree/helpers.py:406 InvenTree/helpers.py:409
+#: InvenTree/helpers.py:384 order/models.py:245 order/models.py:353
+#: stock/views.py:1763
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:387
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:409 InvenTree/helpers.py:412 InvenTree/helpers.py:415
+#: InvenTree/helpers.py:440
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:414
+#: InvenTree/helpers.py:445
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:422
+#: InvenTree/helpers.py:453
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:426
+#: InvenTree/helpers.py:457
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
@@ -140,7 +141,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_base.html:72
#: company/templates/company/supplier_part_base.html:71
#: company/templates/company/supplier_part_detail.html:31 label/models.py:108
-#: order/models.py:101 order/templates/order/purchase_order_detail.html:168
+#: order/models.py:101 order/templates/order/purchase_order_detail.html:143
#: part/models.py:710 part/templates/part/detail.html:54
#: part/templates/part/set_category.html:14 report/models.py:192
#: report/models.py:505 report/models.py:544
@@ -165,23 +166,23 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/settings.py:493
+#: InvenTree/settings.py:491
msgid "English"
msgstr ""
-#: InvenTree/settings.py:494
+#: InvenTree/settings.py:492
msgid "French"
msgstr ""
-#: InvenTree/settings.py:495
+#: InvenTree/settings.py:493
msgid "German"
msgstr ""
-#: InvenTree/settings.py:496
+#: InvenTree/settings.py:494
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:497
+#: InvenTree/settings.py:495
msgid "Turkish"
msgstr ""
@@ -375,16 +376,16 @@ msgstr ""
msgid "Target date for build completion. Build will be overdue after this date."
msgstr ""
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1227
+#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1241
#: build/templates/build/allocation_card.html:23
#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:123
#: build/templates/build/detail.html:31 common/models.py:703
#: company/forms.py:176 company/templates/company/supplier_part_pricing.html:77
#: order/forms.py:188 order/forms.py:205 order/forms.py:239 order/forms.py:261
-#: order/forms.py:278 order/models.py:593 order/models.py:784
+#: order/forms.py:278 order/models.py:603 order/models.py:794
#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/purchase_order_detail.html:200
+#: order/templates/order/purchase_order_detail.html:175
#: order/templates/order/sales_order_detail.html:70
#: order/templates/order/sales_order_detail.html:77
#: order/templates/order/sales_order_detail.html:159
@@ -458,7 +459,7 @@ msgid "Location of completed parts"
msgstr ""
#: build/forms.py:215 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:59 order/models.py:445
+#: build/templates/build/detail.html:59 order/models.py:455
#: order/templates/order/receive_parts.html:24
#: stock/templates/stock/item_base.html:392 templates/InvenTree/search.html:252
#: templates/js/barcode.js:119 templates/js/build.js:770
@@ -508,7 +509,7 @@ msgstr ""
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:55
#: part/templates/part/navbar.html:58 templates/InvenTree/index.html:183
#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/tabs.html:31 users/models.py:41
+#: templates/InvenTree/settings/tabs.html:31 users/models.py:43
msgid "Build Orders"
msgstr ""
@@ -516,8 +517,8 @@ msgstr ""
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:127 order/models.py:99 order/models.py:595
-#: order/templates/order/purchase_order_detail.html:195
+#: build/models.py:127 order/models.py:99 order/models.py:605
+#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:219 part/models.py:2187
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92 templates/js/bom.js:197
@@ -540,10 +541,10 @@ msgstr ""
#: build/models.py:152 build/templates/build/auto_allocate.html:16
#: build/templates/build/build_base.html:118
-#: build/templates/build/detail.html:26 company/models.py:669
-#: order/models.py:637 order/models.py:669
+#: build/templates/build/detail.html:26 company/models.py:688
+#: order/models.py:647 order/models.py:679
#: order/templates/order/order_wizard/select_parts.html:30
-#: order/templates/order/purchase_order_detail.html:156
+#: order/templates/order/purchase_order_detail.html:131
#: order/templates/order/receive_parts.html:19
#: order/templates/order/sales_order_detail.html:207 part/models.py:321
#: part/models.py:1876 part/models.py:1888 part/models.py:1906
@@ -628,7 +629,7 @@ msgstr ""
msgid "Creation Date"
msgstr ""
-#: build/models.py:223 order/models.py:451
+#: build/models.py:223 order/models.py:461
msgid "Target completion date"
msgstr ""
@@ -678,9 +679,9 @@ msgstr ""
#: company/models.py:135 company/models.py:501
#: company/templates/company/navbar.html:70
#: company/templates/company/navbar.html:73 order/models.py:123
-#: order/models.py:597 order/templates/order/po_navbar.html:29
+#: order/models.py:607 order/templates/order/po_navbar.html:29
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:234
+#: order/templates/order/purchase_order_detail.html:209
#: order/templates/order/sales_order_detail.html:264
#: order/templates/order/so_navbar.html:33
#: order/templates/order/so_navbar.html:36 part/models.py:871
@@ -713,47 +714,47 @@ msgstr ""
msgid "Completed build output"
msgstr ""
-#: build/models.py:1118
+#: build/models.py:1132
msgid "BuildItem must be unique for build, stock_item and install_into"
msgstr ""
-#: build/models.py:1143
+#: build/models.py:1157
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1147
+#: build/models.py:1161
#, python-brace-format
msgid "Selected stock item not found in BOM for part '{p}'"
msgstr ""
-#: build/models.py:1151
+#: build/models.py:1165
#, python-brace-format
msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
msgstr ""
-#: build/models.py:1158 order/models.py:758
+#: build/models.py:1172 order/models.py:768
msgid "StockItem is over-allocated"
msgstr ""
-#: build/models.py:1162 order/models.py:761
+#: build/models.py:1176 order/models.py:771
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1166
+#: build/models.py:1180
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1206 stock/templates/stock/item_base.html:306
+#: build/models.py:1220 stock/templates/stock/item_base.html:306
#: templates/InvenTree/search.html:183 templates/js/build.js:714
#: templates/navbar.html:29
msgid "Build"
msgstr ""
-#: build/models.py:1207
+#: build/models.py:1221
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1214 part/templates/part/allocation.html:18
+#: build/models.py:1228 part/templates/part/allocation.html:18
#: part/templates/part/allocation.html:24
#: part/templates/part/allocation.html:31
#: part/templates/part/allocation.html:49
@@ -765,19 +766,19 @@ msgstr ""
msgid "Stock Item"
msgstr ""
-#: build/models.py:1215
+#: build/models.py:1229
msgid "Source stock item"
msgstr ""
-#: build/models.py:1228
+#: build/models.py:1242
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1236
+#: build/models.py:1250
msgid "Install into"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1251
msgid "Destination stock item"
msgstr ""
@@ -801,7 +802,7 @@ msgstr ""
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/allocate.html:26 build/views.py:308 build/views.py:794
+#: build/templates/build/allocate.html:26 build/views.py:319 build/views.py:805
msgid "Unallocate Stock"
msgstr ""
@@ -811,7 +812,7 @@ msgstr ""
#: build/templates/build/allocate.html:30
#: company/templates/company/detail_manufacturer_part.html:33
-#: company/templates/company/detail_supplier_part.html:32 order/views.py:794
+#: company/templates/company/detail_supplier_part.html:32 order/views.py:795
#: part/templates/part/category.html:127
msgid "Order Parts"
msgstr ""
@@ -954,7 +955,7 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:160
-#: build/templates/build/detail.html:84 order/models.py:667
+#: build/templates/build/detail.html:84 order/models.py:677
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:33
#: order/templates/order/sales_order_ship.html:25
@@ -1139,7 +1140,7 @@ msgstr ""
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
-#: build/templates/build/index.html:28 build/views.py:667
+#: build/templates/build/index.html:28 build/views.py:678
msgid "New Build Order"
msgstr ""
@@ -1226,141 +1227,145 @@ msgstr ""
msgid "Create Build Output"
msgstr ""
-#: build/views.py:173 stock/models.py:969 stock/views.py:1789
+#: build/views.py:168
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:184 stock/models.py:969 stock/views.py:1789
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:182
+#: build/views.py:193
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:248
+#: build/views.py:259
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:269 build/views.py:359
+#: build/views.py:280 build/views.py:370
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:270 build/views.py:360 stock/views.py:425
+#: build/views.py:281 build/views.py:371 stock/views.py:425
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:282
+#: build/views.py:293
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:284 build/views.py:485
+#: build/views.py:295 build/views.py:496
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:296
+#: build/views.py:307
msgid "Build output deleted"
msgstr ""
-#: build/views.py:394
+#: build/views.py:405
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:400
+#: build/views.py:411
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:411
+#: build/views.py:422
msgid "Completed build order"
msgstr ""
-#: build/views.py:427
+#: build/views.py:438
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:469
+#: build/views.py:480
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:476
+#: build/views.py:487
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:482
+#: build/views.py:493
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:581
+#: build/views.py:592
msgid "Build output completed"
msgstr ""
-#: build/views.py:721
+#: build/views.py:732
msgid "Created new build"
msgstr ""
-#: build/views.py:742
+#: build/views.py:753
msgid "Edit Build Order Details"
msgstr ""
-#: build/views.py:775
+#: build/views.py:786
msgid "Edited build"
msgstr ""
-#: build/views.py:784
+#: build/views.py:795
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:799
+#: build/views.py:810
msgid "Removed parts from build allocation"
msgstr ""
-#: build/views.py:811
+#: build/views.py:822
msgid "Allocate stock to build output"
msgstr ""
-#: build/views.py:854
+#: build/views.py:865
msgid "Item must be currently in stock"
msgstr ""
-#: build/views.py:860
+#: build/views.py:871
msgid "Stock item is over-allocated"
msgstr ""
-#: build/views.py:861 templates/js/bom.js:230 templates/js/build.js:575
+#: build/views.py:872 templates/js/bom.js:230 templates/js/build.js:575
#: templates/js/build.js:838 templates/js/build.js:1021
msgid "Available"
msgstr ""
-#: build/views.py:863
+#: build/views.py:874
msgid "Stock item must be selected"
msgstr ""
-#: build/views.py:1026
+#: build/views.py:1037
msgid "Edit Stock Allocation"
msgstr ""
-#: build/views.py:1030
+#: build/views.py:1041
msgid "Updated Build Item"
msgstr ""
-#: build/views.py:1059
+#: build/views.py:1070
msgid "Add Build Order Attachment"
msgstr ""
-#: build/views.py:1072 order/views.py:110 order/views.py:162 part/views.py:172
+#: build/views.py:1083 order/views.py:110 order/views.py:162 part/views.py:172
#: stock/views.py:277
msgid "Added attachment"
msgstr ""
-#: build/views.py:1108 order/views.py:189 order/views.py:210
+#: build/views.py:1119 order/views.py:189 order/views.py:210
msgid "Edit Attachment"
msgstr ""
-#: build/views.py:1118 order/views.py:193 order/views.py:214
+#: build/views.py:1129 order/views.py:193 order/views.py:214
msgid "Attachment updated"
msgstr ""
-#: build/views.py:1128 order/views.py:229 order/views.py:243
+#: build/views.py:1139 order/views.py:229 order/views.py:243
msgid "Delete Attachment"
msgstr ""
-#: build/views.py:1133 order/views.py:235 order/views.py:249 stock/views.py:333
+#: build/views.py:1144 order/views.py:235 order/views.py:249 stock/views.py:333
msgid "Deleted attachment"
msgstr ""
@@ -1766,7 +1771,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_detail.html:26
#: company/templates/company/supplier_part_base.html:101
#: company/templates/company/supplier_part_detail.html:35
-#: order/templates/order/purchase_order_detail.html:183 part/bom.py:171
+#: order/templates/order/purchase_order_detail.html:158 part/bom.py:171
#: part/bom.py:242 templates/js/company.js:181 templates/js/company.js:307
msgid "MPN"
msgstr ""
@@ -1865,7 +1870,7 @@ msgstr ""
msgid "Base Part"
msgstr ""
-#: company/models.py:312 company/models.py:463 order/views.py:1372
+#: company/models.py:312 company/models.py:463 order/views.py:1384
msgid "Select part"
msgstr ""
@@ -1905,7 +1910,7 @@ msgstr ""
#: company/models.py:475 company/templates/company/supplier_part_base.html:88
#: company/templates/company/supplier_part_detail.html:26
-#: order/templates/order/purchase_order_detail.html:174 part/bom.py:176
+#: order/templates/order/purchase_order_detail.html:149 part/bom.py:176
#: part/bom.py:287
msgid "SKU"
msgstr ""
@@ -2017,7 +2022,8 @@ msgstr ""
#: company/templates/company/delete.html:12
#, python-format
-msgid "There are %(count)s parts sourced from this company.
\n"
+msgid ""
+"There are %(count)s parts sourced from this company.
\n"
"If this supplier is deleted, these supplier part entries will also be deleted."
msgstr ""
@@ -2033,7 +2039,7 @@ msgstr ""
msgid "Uses default currency"
msgstr ""
-#: company/templates/company/detail.html:67 order/models.py:440
+#: company/templates/company/detail.html:67 order/models.py:450
#: order/templates/order/sales_order_base.html:92 stock/models.py:415
#: stock/models.py:416 stock/templates/stock/item_base.html:251
#: templates/js/company.js:40 templates/js/order.js:267
@@ -2122,13 +2128,13 @@ msgstr ""
#: company/templates/company/detail_supplier_part.html:21
#: order/templates/order/order_wizard/select_parts.html:42
-#: order/templates/order/purchase_order_detail.html:75
+#: order/templates/order/purchase_order_detail.html:50
msgid "Create new supplier part"
msgstr ""
#: company/templates/company/detail_supplier_part.html:22
#: company/templates/company/manufacturer_part_suppliers.html:17
-#: order/templates/order/purchase_order_detail.html:74
+#: order/templates/order/purchase_order_detail.html:49
#: part/templates/part/supplier.html:17 templates/js/stock.js:1163
msgid "New Supplier Part"
msgstr ""
@@ -2226,7 +2232,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_suppliers.html:22
#: part/templates/part/manufacturer.html:24 part/templates/part/params.html:44
#: part/templates/part/related.html:44 part/templates/part/supplier.html:22
-#: stock/views.py:1002 users/models.py:184
+#: stock/views.py:1002 users/models.py:187
msgid "Delete"
msgstr ""
@@ -2252,7 +2258,7 @@ msgstr ""
#: stock/templates/stock/location_navbar.html:22
#: stock/templates/stock/location_navbar.html:29
#: templates/InvenTree/search.html:198 templates/js/stock.js:968
-#: templates/stats.html:72 templates/stats.html:81 users/models.py:40
+#: templates/stats.html:72 templates/stats.html:81 users/models.py:42
msgid "Stock Items"
msgstr ""
@@ -2266,7 +2272,7 @@ msgstr ""
#: part/templates/part/sales_orders.html:10 templates/InvenTree/index.html:228
#: templates/InvenTree/search.html:345
#: templates/InvenTree/settings/tabs.html:37 templates/navbar.html:46
-#: users/models.py:43
+#: users/models.py:45
msgid "Sales Orders"
msgstr ""
@@ -2278,7 +2284,7 @@ msgstr ""
#: part/templates/part/orders.html:10 templates/InvenTree/index.html:205
#: templates/InvenTree/search.html:325
#: templates/InvenTree/settings/tabs.html:34 templates/navbar.html:37
-#: users/models.py:42
+#: users/models.py:44
msgid "Purchase Orders"
msgstr ""
@@ -2357,7 +2363,7 @@ msgid "Pricing Information"
msgstr ""
#: company/templates/company/supplier_part_pricing.html:19 company/views.py:794
-#: part/templates/part/sale_prices.html:17 part/views.py:2624
+#: part/templates/part/sale_prices.html:17 part/views.py:2636
msgid "Add Price Break"
msgstr ""
@@ -2467,15 +2473,15 @@ msgstr ""
msgid "Delete Supplier Part"
msgstr ""
-#: company/views.py:799 part/views.py:2628
+#: company/views.py:799 part/views.py:2640
msgid "Added new price break"
msgstr ""
-#: company/views.py:855 part/views.py:2672
+#: company/views.py:855 part/views.py:2684
msgid "Edit Price Break"
msgstr ""
-#: company/views.py:870 part/views.py:2686
+#: company/views.py:870 part/views.py:2698
msgid "Delete Price Break"
msgstr ""
@@ -2565,7 +2571,7 @@ msgstr ""
msgid "Enter sales order number"
msgstr ""
-#: order/forms.py:145 order/models.py:452
+#: order/forms.py:145 order/models.py:462
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
@@ -2601,7 +2607,7 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:182 order/models.py:445
+#: order/models.py:182 order/models.py:455
msgid "Purchase order status"
msgstr ""
@@ -2642,8 +2648,8 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:243 order/models.py:342 part/views.py:1586
-#: stock/models.py:270 stock/models.py:953
+#: order/models.py:243 part/views.py:1586 stock/models.py:270
+#: stock/models.py:953
msgid "Quantity must be greater than zero"
msgstr ""
@@ -2651,120 +2657,128 @@ msgstr ""
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:337
+#: order/models.py:344
msgid "Lines can only be received against an order marked as 'Placed'"
msgstr ""
-#: order/models.py:359
+#: order/models.py:348
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:350
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:369
msgid "Received items"
msgstr ""
-#: order/models.py:441
+#: order/models.py:451
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer Reference "
msgstr ""
-#: order/models.py:447
+#: order/models.py:457
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:455 templates/js/order.js:303
+#: order/models.py:465 templates/js/order.js:303
msgid "Shipment Date"
msgstr ""
-#: order/models.py:462
+#: order/models.py:472
msgid "shipped by"
msgstr ""
-#: order/models.py:506
+#: order/models.py:516
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:593
+#: order/models.py:603
msgid "Item quantity"
msgstr ""
-#: order/models.py:595
+#: order/models.py:605
msgid "Line item reference"
msgstr ""
-#: order/models.py:597
+#: order/models.py:607
msgid "Line item notes"
msgstr ""
-#: order/models.py:623 order/models.py:667
+#: order/models.py:633 order/models.py:677
#: part/templates/part/allocation.html:17
#: part/templates/part/allocation.html:45
msgid "Order"
msgstr ""
-#: order/models.py:624 order/templates/order/order_base.html:9
+#: order/models.py:634 order/templates/order/order_base.html:9
#: order/templates/order/order_base.html:24
#: report/templates/report/inventree_po_report.html:77
#: stock/templates/stock/item_base.html:313 templates/js/order.js:148
msgid "Purchase Order"
msgstr ""
-#: order/models.py:638
+#: order/models.py:648
msgid "Supplier part"
msgstr ""
-#: order/models.py:641 order/templates/order/order_base.html:131
-#: order/templates/order/purchase_order_detail.html:214
+#: order/models.py:651 order/templates/order/order_base.html:131
+#: order/templates/order/purchase_order_detail.html:189
#: order/templates/order/receive_parts.html:22
#: order/templates/order/sales_order_base.html:131
msgid "Received"
msgstr ""
-#: order/models.py:641
+#: order/models.py:651
msgid "Number of items received"
msgstr ""
-#: order/models.py:648 stock/models.py:508
+#: order/models.py:658 stock/models.py:508
#: stock/templates/stock/item_base.html:320
msgid "Purchase Price"
msgstr ""
-#: order/models.py:649
+#: order/models.py:659
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:743 order/models.py:745
+#: order/models.py:753 order/models.py:755
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:749
+#: order/models.py:759
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:751
+#: order/models.py:761
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:754
+#: order/models.py:764
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:764
+#: order/models.py:774
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:769
+#: order/models.py:779
msgid "Line"
msgstr ""
-#: order/models.py:780
+#: order/models.py:790
msgid "Item"
msgstr ""
-#: order/models.py:781
+#: order/models.py:791
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:784
+#: order/models.py:794
msgid "Enter stock allocation quantity"
msgstr ""
@@ -2812,9 +2826,22 @@ msgstr ""
msgid "Issued"
msgstr ""
-#: order/templates/order/order_cancel.html:7
-#: order/templates/order/sales_order_cancel.html:9
-msgid "Cancelling this order means that the order will no longer be editable."
+#: order/templates/order/order_base.html:180
+#: order/templates/order/purchase_order_detail.html:100
+#: part/templates/part/category.html:185 part/templates/part/category.html:227
+#: stock/templates/stock/location.html:191 templates/js/stock.js:708
+#: templates/js/stock.js:1169
+msgid "New Location"
+msgstr ""
+
+#: order/templates/order/order_base.html:181
+#: order/templates/order/purchase_order_detail.html:101
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
#: order/templates/order/order_complete.html:7
@@ -2826,10 +2853,10 @@ msgid "This order has line items which have not been marked as received."
msgstr ""
#: order/templates/order/order_complete.html:11
-msgid "Marking this order as complete will remove these line items."
+msgid "Completing this order means that the order and line items will no longer be editable."
msgstr ""
-#: order/templates/order/order_issue.html:7
+#: order/templates/order/order_issue.html:8
msgid "After placing this purchase order, line items will no longer be editable."
msgstr ""
@@ -2881,11 +2908,13 @@ msgid "Select Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:45
-msgid "Create new purchase order for {{ supplier.name }}"
+#, python-format
+msgid "Create new purchase order for %(name)s"
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:68
-msgid "Select a purchase order for"
+#, python-format
+msgid "Select a purchase order for %(name)s"
msgstr ""
#: order/templates/order/po_attachments.html:12
@@ -2907,43 +2936,29 @@ msgid "Purchase Order Items"
msgstr ""
#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/sales_order_detail.html:22 order/views.py:1108
-#: order/views.py:1191
+#: order/templates/order/sales_order_detail.html:22 order/views.py:1120
+#: order/views.py:1203
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:45
-#: order/templates/order/purchase_order_detail.html:125
-#: part/templates/part/category.html:185 part/templates/part/category.html:227
-#: stock/templates/stock/location.html:191 templates/js/stock.js:708
-#: templates/js/stock.js:1169
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:46
-#: order/templates/order/purchase_order_detail.html:126
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: order/templates/order/purchase_order_detail.html:139
+#: order/templates/order/purchase_order_detail.html:114
msgid "No line items found"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:205
+#: order/templates/order/purchase_order_detail.html:180
msgid "Unit Price"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:246
+#: order/templates/order/purchase_order_detail.html:221
#: order/templates/order/sales_order_detail.html:294
msgid "Edit line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:247
+#: order/templates/order/purchase_order_detail.html:222
msgid "Delete line item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:252
+#: order/templates/order/purchase_order_detail.html:227
msgid "Receive line item"
msgstr ""
@@ -2966,7 +2981,7 @@ msgstr ""
#: templates/InvenTree/index.html:97 templates/InvenTree/search.html:114
#: templates/InvenTree/settings/tabs.html:25 templates/js/part.js:577
#: templates/navbar.html:23 templates/stats.html:59 templates/stats.html:68
-#: users/models.py:38
+#: users/models.py:40
msgid "Parts"
msgstr ""
@@ -3019,6 +3034,10 @@ msgstr ""
msgid "Warning"
msgstr ""
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
#: order/templates/order/sales_order_detail.html:13
msgid "Sales Order Items"
msgstr ""
@@ -3213,65 +3232,65 @@ msgstr ""
msgid "No lines specified"
msgstr ""
-#: order/views.py:1060
+#: order/views.py:1069
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1117
+#: order/views.py:1129
msgid "Supplier part must be specified"
msgstr ""
-#: order/views.py:1123
+#: order/views.py:1135
msgid "Supplier must match for Part and Order"
msgstr ""
-#: order/views.py:1242 order/views.py:1260
+#: order/views.py:1254 order/views.py:1272
msgid "Edit Line Item"
msgstr ""
-#: order/views.py:1276 order/views.py:1288
+#: order/views.py:1288 order/views.py:1300
msgid "Delete Line Item"
msgstr ""
-#: order/views.py:1281 order/views.py:1293
+#: order/views.py:1293 order/views.py:1305
msgid "Deleted line item"
msgstr ""
-#: order/views.py:1306
+#: order/views.py:1318
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1351
+#: order/views.py:1363
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1367
+#: order/views.py:1379
msgid "Select line item"
msgstr ""
-#: order/views.py:1398
+#: order/views.py:1410
msgid "No matching item for serial"
msgstr ""
-#: order/views.py:1408
+#: order/views.py:1420
msgid "is not in stock"
msgstr ""
-#: order/views.py:1416
+#: order/views.py:1428
msgid "already allocated to an order"
msgstr ""
-#: order/views.py:1470
+#: order/views.py:1482
msgid "Allocate Stock to Order"
msgstr ""
-#: order/views.py:1544
+#: order/views.py:1556
msgid "Edit Allocation Quantity"
msgstr ""
-#: order/views.py:1559
+#: order/views.py:1571
msgid "Remove allocation"
msgstr ""
@@ -3457,7 +3476,7 @@ msgstr ""
#: part/models.py:83 part/templates/part/category.html:23
#: part/templates/part/category.html:94 part/templates/part/category.html:141
#: templates/InvenTree/search.html:127 templates/stats.html:63
-#: users/models.py:37
+#: users/models.py:39
msgid "Part Categories"
msgstr ""
@@ -4004,7 +4023,7 @@ msgstr ""
msgid "All parts"
msgstr ""
-#: part/templates/part/category.html:29 part/views.py:2270
+#: part/templates/part/category.html:29 part/views.py:2282
msgid "Create new part category"
msgstr ""
@@ -4694,63 +4713,63 @@ msgstr ""
msgid "Part Pricing"
msgstr ""
-#: part/views.py:2069
+#: part/views.py:2081
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:2079
+#: part/views.py:2091
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:2086
+#: part/views.py:2098
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:2094
+#: part/views.py:2106
msgid "Create Part Parameter"
msgstr ""
-#: part/views.py:2144
+#: part/views.py:2156
msgid "Edit Part Parameter"
msgstr ""
-#: part/views.py:2158
+#: part/views.py:2170
msgid "Delete Part Parameter"
msgstr ""
-#: part/views.py:2218
+#: part/views.py:2230
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:2256
+#: part/views.py:2268
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:2262
+#: part/views.py:2274
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:2314
+#: part/views.py:2326
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:2415
+#: part/views.py:2427
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:2471
+#: part/views.py:2483
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:2490
+#: part/views.py:2502
msgid "Create BOM Item"
msgstr ""
-#: part/views.py:2560
+#: part/views.py:2572
msgid "Edit BOM item"
msgstr ""
-#: part/views.py:2616
+#: part/views.py:2628
msgid "Confim BOM item deletion"
msgstr ""
@@ -5301,15 +5320,15 @@ msgid "Stock adjustment actions"
msgstr ""
#: stock/templates/stock/item_base.html:164
-#: stock/templates/stock/location.html:65 templates/stock_table.html:56
+#: stock/templates/stock/location.html:65 templates/stock_table.html:57
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:167 templates/stock_table.html:54
+#: stock/templates/stock/item_base.html:167 templates/stock_table.html:55
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:170 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:170 templates/stock_table.html:56
msgid "Remove stock"
msgstr ""
@@ -5503,7 +5522,7 @@ msgid "Stock Details"
msgstr ""
#: stock/templates/stock/location.html:117 templates/InvenTree/search.html:279
-#: templates/stats.html:76 users/models.py:39
+#: templates/stats.html:76 users/models.py:41
msgid "Stock Locations"
msgstr ""
@@ -5689,7 +5708,7 @@ msgstr ""
msgid "Add Stock Items"
msgstr ""
-#: stock/views.py:1001 users/models.py:180
+#: stock/views.py:1001 users/models.py:183
msgid "Add"
msgstr ""
@@ -5867,6 +5886,31 @@ msgstr ""
msgid "No stock location set"
msgstr ""
+#: templates/InvenTree/settings/appearance.html:10
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:17
+msgid "Color Themes"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:29
+#, python-format
+msgid ""
+"\n"
+" The CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
+" Please select another color theme :)\n"
+" "
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:39
+msgid "Language"
+msgstr ""
+
+#: templates/InvenTree/settings/appearance.html:61
+msgid "Set Language"
+msgstr ""
+
#: templates/InvenTree/settings/build.html:10
msgid "Build Order Settings"
msgstr ""
@@ -5950,7 +5994,7 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:49
+#: templates/InvenTree/settings/stock.html:13 templates/stock_table.html:50
msgid "Stock Options"
msgstr ""
@@ -5964,7 +6008,7 @@ msgid "Account"
msgstr ""
#: templates/InvenTree/settings/tabs.html:9
-msgid "Theme"
+msgid "Appearance"
msgstr ""
#: templates/InvenTree/settings/tabs.html:13
@@ -5983,22 +6027,6 @@ msgstr ""
msgid "Categories"
msgstr ""
-#: templates/InvenTree/settings/theme.html:10
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:17
-msgid "Color Themes"
-msgstr ""
-
-#: templates/InvenTree/settings/theme.html:29
-#, python-format
-msgid "\n"
-"\t\tThe CSS sheet \"%(invalid_color_theme)s.css\" for the currently selected color theme was not found.
\n"
-"\t\tPlease select another color theme :)\n"
-"\t"
-msgstr ""
-
#: templates/InvenTree/settings/user.html:16
msgid "User Information"
msgstr ""
@@ -6061,13 +6089,23 @@ msgid "View Code on GitHub"
msgstr ""
#: templates/about.html:63
-msgid "Get the App"
+msgid "Credits"
msgstr ""
#: templates/about.html:68
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:73
msgid "Submit Bug Report"
msgstr ""
+#: templates/about.html:82 templates/js/modals.js:550
+#: templates/js/modals.js:809 templates/modals.html:28 templates/modals.html:52
+#: templates/modals.html:93
+msgid "Close"
+msgstr ""
+
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
@@ -6263,7 +6301,7 @@ msgid "Quantity Per"
msgstr ""
#: templates/js/build.js:638 templates/js/build.js:1056
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
@@ -6396,11 +6434,6 @@ msgstr ""
msgid "Submit"
msgstr ""
-#: templates/js/modals.js:550 templates/js/modals.js:809
-#: templates/modals.html:28 templates/modals.html:52 templates/modals.html:93
-msgid "Close"
-msgstr ""
-
#: templates/js/modals.js:760
msgid "Invalid response from server"
msgstr ""
@@ -6974,6 +7007,10 @@ msgstr ""
msgid "Form errors exist"
msgstr ""
+#: templates/navbar.html:13
+msgid "Toggle navigation"
+msgstr ""
+
#: templates/navbar.html:33
msgid "Buy"
msgstr ""
@@ -6986,7 +7023,7 @@ msgstr ""
msgid "Scan Barcode"
msgstr ""
-#: templates/navbar.html:77 users/models.py:36
+#: templates/navbar.html:77 users/models.py:38
msgid "Admin"
msgstr ""
@@ -7118,43 +7155,43 @@ msgstr ""
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:54
+#: templates/stock_table.html:55
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:56
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:57
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:58
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:59
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:60
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete selected items"
msgstr ""
-#: templates/stock_table.html:62
+#: templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
@@ -7190,35 +7227,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:167
+#: users/models.py:170
msgid "Permission set"
msgstr ""
-#: users/models.py:175
+#: users/models.py:178
msgid "Group"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "View"
msgstr ""
-#: users/models.py:178
+#: users/models.py:181
msgid "Permission to view items"
msgstr ""
-#: users/models.py:180
+#: users/models.py:183
msgid "Permission to add items"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Change"
msgstr ""
-#: users/models.py:182
+#: users/models.py:185
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:184
+#: users/models.py:187
msgid "Permission to delete items"
msgstr ""
-
diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py
index ea70c3b56a..d3b09dec1e 100644
--- a/InvenTree/order/models.py
+++ b/InvenTree/order/models.py
@@ -223,7 +223,7 @@ class PurchaseOrder(Order):
return reverse('po-detail', kwargs={'pk': self.id})
@transaction.atomic
- def add_line_item(self, supplier_part, quantity, group=True, reference=''):
+ def add_line_item(self, supplier_part, quantity, group=True, reference='', purchase_price=None):
""" Add a new line item to this purchase order.
This function will check that:
@@ -254,7 +254,12 @@ class PurchaseOrder(Order):
if matches.count() > 0:
line = matches.first()
- line.quantity += quantity
+ # update quantity and price
+ quantity_new = line.quantity + quantity
+ line.quantity = quantity_new
+ supplier_price = supplier_part.get_price(quantity_new)
+ if line.purchase_price and supplier_price:
+ line.purchase_price = supplier_price / quantity_new
line.save()
return
@@ -263,7 +268,9 @@ class PurchaseOrder(Order):
order=self,
part=supplier_part,
quantity=quantity,
- reference=reference)
+ reference=reference,
+ purchase_price=purchase_price,
+ )
line.save()
@@ -329,7 +336,7 @@ class PurchaseOrder(Order):
return self.pending_line_items().count() == 0
@transaction.atomic
- def receive_line_item(self, line, location, quantity, user, status=StockStatus.OK):
+ def receive_line_item(self, line, location, quantity, user, status=StockStatus.OK, purchase_price=None):
""" Receive a line item (or partial line item) against this PO
"""
@@ -353,7 +360,8 @@ class PurchaseOrder(Order):
location=location,
quantity=quantity,
purchase_order=self,
- status=status
+ status=status,
+ purchase_price=purchase_price,
)
stock.save()
diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py
index 284a24fcf5..c62a3816d5 100644
--- a/InvenTree/order/views.py
+++ b/InvenTree/order/views.py
@@ -776,6 +776,7 @@ class PurchaseOrderReceive(AjaxUpdateView):
line.receive_quantity,
self.request.user,
status=line.status_code,
+ purchase_price=line.purchase_price,
)
@@ -996,6 +997,14 @@ class OrderParts(AjaxView):
part.order_supplier = supplier_part.id if supplier_part else None
part.order_quantity = quantity
+ # set supplier-price
+ if supplier_part:
+ supplier_price = supplier_part.get_price(quantity)
+ if supplier_price:
+ part.purchase_price = supplier_price / quantity
+ if not hasattr(part, 'purchase_price'):
+ part.purchase_price = None
+
self.parts.append(part)
if supplier_part is None:
@@ -1095,7 +1104,10 @@ class OrderParts(AjaxView):
sp=item.order_supplier))
continue
- order.add_line_item(supplier_part, quantity)
+ # get purchase price
+ purchase_price = item.purchase_price
+
+ order.add_line_item(supplier_part, quantity, purchase_price=purchase_price)
class POLineItemCreate(AjaxCreateView):
diff --git a/InvenTree/part/templates/part/navbar.html b/InvenTree/part/templates/part/navbar.html
index d8750a49a5..df49841e31 100644
--- a/InvenTree/part/templates/part/navbar.html
+++ b/InvenTree/part/templates/part/navbar.html
@@ -91,7 +91,7 @@
{% if part.salable and roles.sales_order.view %}
-
+
{% trans "Sale Price" %}
diff --git a/InvenTree/part/templates/part/sale_prices.html b/InvenTree/part/templates/part/sale_prices.html
index ce50c1f20d..f19d65a59a 100644
--- a/InvenTree/part/templates/part/sale_prices.html
+++ b/InvenTree/part/templates/part/sale_prices.html
@@ -2,7 +2,7 @@
{% load static %}
{% load i18n %}
-{% block menubar %}}
+{% block menubar %}
{% include 'part/navbar.html' with tab='sales-prices' %}
{% endblock %}
diff --git a/tasks.py b/tasks.py
index 3065d97243..37cbc71eab 100644
--- a/tasks.py
+++ b/tasks.py
@@ -65,7 +65,7 @@ def manage(c, cmd, pty=False):
cmd - django command to run
"""
- c.run('cd {path} && python3 manage.py {cmd}'.format(
+ c.run('cd "{path}" && python3 manage.py {cmd}'.format(
path=managePyDir(),
cmd=cmd
), pty=pty)
@@ -185,7 +185,7 @@ def translate(c):
"""
# Translate applicable .py / .html / .js files
- manage(c, "makemessages --all -e py,html,js")
+ manage(c, "makemessages --all -e py,html,js --no-wrap")
manage(c, "compilemessages")
path = os.path.join('InvenTree', 'script', 'translation_stats.py')