diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 410e78911d..549ecdddf9 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -33,48 +33,61 @@ msgstr "Keine passende Aktion gefunden"
msgid "Enter date"
msgstr "Datum eingeben"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Bestätigen"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "Löschung bestätigen"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr "Löschung von Position bestätigen"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "Passwort eingeben"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "Neues Passwort eingeben"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "Passwort wiederholen"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "Neues Passwort bestätigen"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "Kategorie auswählen"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Doppelte Seriennummer: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
@@ -102,7 +115,7 @@ msgstr "Keine Seriennummern gefunden"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "Anhang"
@@ -118,10 +131,10 @@ msgstr "Kommentar"
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "Benutzer"
@@ -158,37 +171,34 @@ msgstr "Fehler beim Umbenennen"
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "Beschreibung"
@@ -200,7 +210,7 @@ msgstr "Beschreibung (optional)"
msgid "parent"
msgstr "Eltern"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
@@ -208,75 +218,75 @@ msgstr "Muss eine gültige Nummer sein"
msgid "Filename"
msgstr "Dateiname"
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr "Chinesisch"
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr "Zurückgegeben"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "Versendet"
@@ -461,27 +471,27 @@ msgstr "Überschuss darf 100% nicht überschreiten"
msgid "Overage must be an integer value or a percentage"
msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein"
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr "Element löschen"
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr "Häkchen setzen um Löschung von Objekt zu bestätigen"
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr "Benutzerinformationen bearbeiten"
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr "Passwort eingeben"
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr "Passwörter stimmen nicht überein"
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr "Systeminformationen"
@@ -525,6 +535,10 @@ msgstr "Barcode ist bereits BestandsObjekt zugeordnet"
msgid "Barcode associated with StockItem"
msgstr "Barcode zugeordnet zu BestandsObjekt"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr "Es existiert kein passender Build-Auftrag"
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Bauauftrags-Referenz"
@@ -536,33 +550,28 @@ msgstr "geplantes Bestelldatum"
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr "Zieldatum"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr "Zieldatum für Bauauftrag-Fertigstellung."
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr "Anzahl"
@@ -589,7 +600,7 @@ msgstr "Anzahl der zu bauenden Teile"
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr "Seriennummer"
@@ -609,246 +620,238 @@ msgstr "Löschen des Endprodukt bestätigen"
msgid "Confirm unallocation of stock"
msgstr "Aufhebung der BestandsZuordnung bestätigen"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Bestandszuordnung bestätigen"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Bauauftrag als vollständig markieren"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr "Lagerort"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Lagerort der Endprodukte"
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr "Status"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Bestands-Status der Endprodukte"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Bauauftrag nicht fertiggestellt"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Fertigstellung mit nicht kompletter Bestandszuordnung bestätigen"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Bauauftrag-Fertigstellung bestätigen"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Abbruch bestätigen"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Bauabbruch bestätigen"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Menge der BestandsObjekte für Zuordnung auswählen"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr "Ungültige Wahl für übergeordneten Bauauftrag"
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr "Bauaufträge"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr "Referenz"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr "Teil"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Teil für den Bauauftrag wählen"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "Auftrag Referenz"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr "Quell-Lagerort"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)"
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "Ziel-Lagerort"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Bau-Anzahl"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "Anzahl der zu bauenden BestandsObjekt"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Fertiggestellte Teile"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Anzahl der fertigen BestandsObjekte"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Bauauftrags-Status"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "Fertiggestellt von"
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr "Aufgegeben von"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr "Notizen"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Extranotizen für den Bauauftrag"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1208
-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:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Bauauftragsposition muss ein Endprodukt festlegen, da der übergeordnete Teil verfolgbar ist"
-#: build/models.py:1237
+#: build/models.py:1111
#, 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"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
+msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
-msgstr "Zu viele BestandsObjekt zugewiesen"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
+msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1312
-#, 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:1191
+msgid "Selected stock item not found in BOM"
+msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr "BestandsObjekt"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "Quell-BestandsObjekt"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen"
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr "Ziel-BestandsObjekt"
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr "Stücklisten-Position"
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr "Teil muss auf Lager sein"
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr "Anzahl muss größer Null sein"
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr "Endprodukt"
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr "Verfügbare Menge ({q}) überschritten"
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr "Seriennummer"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr "Lagerbestand automatisch zuweisen"
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr "Die folgenden BestandsObjekte werden den ausgewählten Endprodukten zugeordnet"
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr "Keine BestandsObjekte gefunden, die diesem Endprodukt automatisch zugewiesen werden können"
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr "BestandsObjekte müssen manuell zugewiesen werden"
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr "Admin"
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr "Überfällig"
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr "Fortschritt"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr "Auftrag"
@@ -1171,28 +1191,6 @@ msgstr "verfolgte Teile wurden nicht vollständig zugewiesen"
msgid "The following items will be created"
msgstr "Die folgenden Objekte werden erstellt"
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr "BestandsObjekt zur Zuordnung zum ausgewählten Endprodukt auswählen"
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr "Der zugeordnete Bestand wird in den folgenden Endprodukten verbaut werden:
%(output)s"
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr "Kein Bestand verfügbar für %(part)s"
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr "Sind Sie sicher, dass sie die folgenden Bestands-Zuordnung entfernen möchten?"
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr "Der ausgeählte Bestand wird von den Endprodukten zurückgenommen werden"
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr "Ausgangs-Lager"
@@ -1201,9 +1199,8 @@ msgstr "Ausgangs-Lager"
msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr "Ziel-Lager"
@@ -1213,7 +1210,7 @@ msgstr "Ziel-Lagerort nicht angegeben"
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr "Losnummer"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr "Erstellt"
@@ -1230,7 +1227,8 @@ msgstr "Erstellt"
msgid "No target date set"
msgstr "Kein Ziel-Datum gesetzt"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr "Fertig"
@@ -1250,15 +1248,16 @@ msgstr "Lagerbestand Bauauftrag zuweisen"
msgid "Allocate stock to build"
msgstr "Lagerbestand Bauauftrag zuweisen"
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr "Automatisch zuweisen"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
+msgstr "Lagerbestand zuweisen"
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr "Bestandszuordnung aufheben"
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "Bestandszuordnung aufheben"
@@ -1268,7 +1267,7 @@ msgstr "Benötigte Teile bestellen"
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr "Teile bestellen"
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen"
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge"
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr "Unfertige Endprodukte"
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr "Neues Endprodukt anlegen"
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr "Neues Endprodukt anlegen"
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr "Neues Endprodukt anlegen"
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr "Keine unfertigen Endprodukte verbleibend."
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr "Neues Endprodukt mit der Schaltfläche oberhalb anlegen"
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr "Fertiggestellte Endprodukte"
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr "Fertiggestellte Endprodukte"
msgid "Attachments"
msgstr "Anhänge"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Bauauftrags-Notizen"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr "Bauauftrags-Notizen"
msgid "Edit Notes"
msgstr "Anmerkungen bearbeiten"
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr "Anhang hinzufügen"
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr "Anhang bearbeiten"
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr "Löschvorgang bestätigen"
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr "Anhang löschen"
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr "Zuordnung abgeschlossen"
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr "Anzahl des zugeordneten Bestands für die Endprodukte ändern"
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr "Bauauftrag-details"
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr "Details"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr "Lagerbestand zuweisen"
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr "Endprodukte"
@@ -1434,120 +1441,82 @@ msgstr "Alle unvollständigen Bestandszuordnungen werden vom Endprodukt entfernt
msgid "Build was cancelled"
msgstr "Bauauftrag wurde abgebrochen"
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr "Bestand dem Endprodukt zuweisen"
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr "Endprodukt anlegen"
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr "Maximale Endproduktmenge ist "
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr "Seriennummern für verfolgbare Endprodukte benötigt"
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr "Endprodukt entfernen"
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr "Entfernung von Bestands-Zuordnung bestätigen"
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr "Bestätigungsbox bestätigen"
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr "Endprodukt stimmt nicht mit Bauauftrag überein"
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr "Endprodukt muss angegeben sein"
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr "Endprodukt gelöscht"
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr "Bauauftrag fertigstellen"
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr "Bauauftrag kann nicht abgeschlossen werden, es gibt noch unvollständige Endprodukte"
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr "Bauauftrag fertiggestellt"
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr "Endprodukt fertigstellen"
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr "Ungültiger Lagerbestands-Status ausgewählt"
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr "Fertigzustellende Anzahl darf nicht die geplante Endprodukt-Anzahl überschreiten"
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr "Endprodukt-Fertigstellung bestätigen"
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr "Endprodukt fertiggestellt"
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr "Bauauftrag löschen"
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr "Teile von Bauzuordnung entfernt"
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr "Bestand dem Endprodukt zuweisen"
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr "Teil muss aktuell im Bestand sein"
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr "BestandObjekt ist zu oft zugewiesen"
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr "Verfügbar"
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr "BestandsObjekt muss ausgewählt sein"
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr "Bestandszuordnung bearbeiten"
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr "Bauobjekt aktualisiert"
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr "Dateiformat nicht unterstützt: {ext.upper()}"
@@ -1585,7 +1554,7 @@ msgstr "{name.title()} Datei"
msgid "Select {name} file to upload"
msgstr "{name} Datei zum Hochladen auswählen"
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
@@ -1625,7 +1594,7 @@ msgstr "Name der Instanz verwenden"
msgid "Use the instance name in the title-bar"
msgstr "Den Namen der Instanz in der Titelleiste verwenden"
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Firmenname"
@@ -1721,9 +1690,9 @@ msgstr "Kategorie-Parametervorlage kopieren"
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr "Vorlage"
@@ -1731,9 +1700,9 @@ msgstr "Vorlage"
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr "Baugruppe"
@@ -1741,8 +1710,8 @@ msgstr "Baugruppe"
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr "Komponente"
@@ -1750,7 +1719,7 @@ msgstr "Komponente"
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr "Kaufbar"
@@ -1758,8 +1727,8 @@ msgstr "Kaufbar"
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr "Verkäuflich"
@@ -1767,9 +1736,9 @@ msgstr "Verkäuflich"
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr "Nachverfolgbar"
@@ -1777,7 +1746,7 @@ msgstr "Nachverfolgbar"
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr "Virtuell"
msgid "Parts are virtual by default"
msgstr "Teile sind grundsätzlich virtuell"
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr "zeige Bestand in Eingabemasken"
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr "Import in Ansichten anzeigen"
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr "Importassistent in einigen Teil-Ansichten anzeigen"
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr "Preis in Formularen anzeigen"
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr "Teilpreis in einigen Formularen anzeigen"
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr "Verwandte Teile anzeigen"
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr "Verwandte Teile eines Teils anzeigen"
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr "Ausgangsbestand erstellen"
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen"
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr "Interne Preise"
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr "Interne Preise für Teile aktivieren"
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr "Interner Preis als Stückliste-Preis"
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwenden"
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr "Entwickler-Modus"
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr "Seitengröße"
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr "Test-Berichte"
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr "Erstellung von Test-Berichten aktivieren"
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr "Anzahl an Tagen, an denen Bestand als abgestanden markiert wird, bevor sie ablaufen"
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr "Tage"
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr "Gruppieren nach Teil"
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren"
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr "Bauauftrag-Referenz Präfix"
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr "Präfix für Bauauftrag-Referenz"
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr "Bauauftrag-Referenz RegEx"
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen"
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr "Auftrags-Referenz Präfix"
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr "Präfix für Auftrags-Referenz"
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr "Bestellungs-Referenz Präfix"
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr "Präfix für Bestellungs-Referenz"
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
-msgstr ""
+msgstr "Bauaufträge aktivieren"
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
-msgstr ""
+msgstr "Bau-Funktionalität in InvenTree aktivieren"
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
-msgstr ""
+msgstr "Kaufen aktivieren"
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
+msgstr "Kauf-Funktionalität in InvenTree aktivieren"
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
-msgstr ""
+msgstr "Verkauf aktivieren"
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
+msgstr "Verkaufs-Funktionalität in InvenTree aktivieren"
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
-msgstr ""
+msgstr "Lagerbestand aktivieren"
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
-msgstr ""
+msgstr "Aufträge aktivieren"
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
-msgstr ""
+msgstr "Bestellungen aktivieren"
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr "Markierte Teile anzeigen"
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr "Zeige markierte Teile auf der Startseite"
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr "Neueste Teile anzeigen"
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr "Zeige neueste Teile auf der Startseite"
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr "Aktuelle Teile-Stände"
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr "Nicht validierte Stücklisten anzeigen"
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr "Neueste Lagerbestand Änderungen anzeigen"
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr "Niedrigen Bestand anzeigen"
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr "Zeige geringen Lagerbestand auf der Startseite"
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
-msgstr ""
+msgstr "Lerren Bestand anzeigen"
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr "Benötigten Bestand anzeigen"
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr "Abgelaufenen Bestand anzeigen"
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr "Zeige Abgelaufene Lagerbestände auf der Startseite"
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
-msgstr ""
+msgstr "Alten Bestand anzeigen"
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr "Ausstehende Bauaufträge anzeigen"
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr "Zeige überfällige Bauaufträge"
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr "Zeige überfällige Bauaufträge auf der Startseite"
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr "Ausstehende POs anzeigen"
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr "Ausstehende POs auf der Startseite anzeigen"
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr "Überfällige POs anzeigen"
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr "Überfällige POs auf der Startseite anzeigen"
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr "Ausstehende SOs anzeigen"
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr "Ausstehende SOs auf der Startseite anzeigen"
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr "Überfällige SOs anzeigen"
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr "Überfällige SOs auf der Startseite anzeigen"
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
-msgstr ""
+msgstr "Label inline anzeigen"
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
-msgstr ""
+msgstr "PDF-Labels im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr "Berichte inline anzeigen"
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "PDF-Berichte im Browser anzeigen, anstatt als Datei herunterzuladen"
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr "Anzahl Suchergebnisse"
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen"
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr "zeige Bestand in Eingabemasken"
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr "Preis"
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr "Standard"
@@ -2199,7 +2240,7 @@ msgstr "Benutzereinstellungen ändern"
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr "Datei hochgeladen"
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr "URL"
msgid "Image URL"
msgstr "Bild-URL"
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr "Firmenbeschreibung"
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr "Firmenbeschreibung"
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr "Website"
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr "Firmenwebsite Adresse/URL"
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr "Adresse"
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr "Firmenadresse"
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr "Kontakt-Tel."
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr "Kontakt-Telefon"
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr "Email"
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr "Kontakt-Email"
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr "Kontakt"
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr "Anlaufstelle"
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr "Link"
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr "Bild"
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr "ist Kunde"
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr "Verkaufen Sie Teile an diese Firma?"
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr "ist Zulieferer"
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr "Kaufen Sie Teile von dieser Firma?"
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr "ist Hersteller"
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr "Währung"
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr "Basisteil"
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr "Teil auswählen"
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr "MPN"
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr "Externe URL für das Herstellerteil"
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr "Teilbeschreibung des Herstellers"
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr "Herstellerteil"
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr "Parametername"
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr "Wert"
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr "Einheiten"
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr "Parametereinheit"
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr "Herstellerteil auswählen"
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr "Teil-URL des Zulieferers"
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Notiz"
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr "Verpackungen"
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr "Vielfache"
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr "Mehrere bestellen"
@@ -2502,7 +2543,7 @@ msgstr "Währungscode"
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr "Firma"
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr "Bild von URL herunterladen"
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr "Bestellung anlegen"
@@ -2542,22 +2583,22 @@ msgstr "verwendet Standard-Währung"
msgid "Phone"
msgstr "Telefon"
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr "Kunde"
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr "Bild hochladen"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr "Zuliefererteile"
@@ -2597,7 +2638,7 @@ msgstr "Teile löschen"
msgid "Delete Parts"
msgstr "Teile löschen"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr "Herstellerteile"
@@ -2620,9 +2661,9 @@ msgstr "Zulieferer-Bestand"
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr "Bestellungen"
@@ -2644,9 +2685,9 @@ msgstr "Neue Bestellung"
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr "Aufträge"
@@ -2664,7 +2705,7 @@ msgstr "Neuer Auftrag"
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr "Zugeordneter Bestand"
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr "Teil bestellen"
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr "Herstellerteil bearbeiten"
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr "Herstellerteil löschen"
@@ -2718,7 +2759,7 @@ msgstr "Internes Teil"
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr "Zulieferer"
@@ -2732,7 +2773,7 @@ msgstr "Zuliefererteil entfernen"
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr "Löschen"
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr "Parameter löschen"
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr "Parameter hinzufügen"
@@ -2777,16 +2818,15 @@ msgstr "Herstellerteil-Bestand"
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr "Lagerbestand"
@@ -2815,7 +2855,7 @@ msgstr "Zuliefererteile"
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Teilbestand"
@@ -2823,17 +2863,17 @@ msgstr "Teilbestand"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr "Zuliefererteil"
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr "Zuliefererteil bearbeiten"
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr "Zuliefererteil entfernen"
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr "Neuer Zulieferer"
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr "Hersteller"
@@ -2908,7 +2948,7 @@ msgstr "Hersteller"
msgid "New Manufacturer"
msgstr "Neuer Hersteller"
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr "Kunden"
@@ -3011,36 +3051,32 @@ msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr "Bestellung aufgeben"
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr "Bestellung als vollständig markieren"
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr "Bestellung stornieren"
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr "Bestellung versenden"
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr "Seriennummern für BestandsObjekt eingeben"
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr "Menge der BestandsObjekt eingeben"
@@ -3064,11 +3100,11 @@ msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr "Bestell-Referenz"
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr "Bestellungs-Status"
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
@@ -3109,190 +3145,190 @@ msgstr "Geplantes Lieferdatum für Auftrag."
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr "Anzahl muss größer Null sein"
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr "Nur Teile aufgegebener Bestllungen können empfangen werden"
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:616
+#: order/models.py:624
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:713
+#: order/models.py:721
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr "Zuliefererteil"
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?"
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Verkaufspreis"
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr "Stückverkaufspreis"
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr "BestandsObjekt wurde nicht zugewiesen"
-#: order/models.py:929
+#: order/models.py:943
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:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr "Zu viele BestandsObjekt zugewiesen"
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein"
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr "Position"
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr "Position"
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr "BestandsObjekt für Zuordnung auswählen"
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr "Kaufpreiswährung"
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
-msgstr ""
+msgstr "Position"
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
-msgstr ""
+msgstr "Position stimmt nicht mit Kaufauftrag überein"
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
-msgstr ""
+msgstr "Zielort für empfangene Teile auswählen"
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
-msgstr ""
+msgstr "Barcode-Hash"
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
-msgstr ""
+msgstr "Einzigartiger Identifikator"
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
-msgstr ""
+msgstr "Barcode ist bereits in Verwendung"
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
-msgstr ""
+msgstr "Positionen müssen angegeben werden"
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr "Ziel-Lagerort muss angegeben werden"
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
@@ -3307,31 +3343,32 @@ msgstr "Sind Sie sicher, dass Sie diesen Anhang löschen wollen?"
msgid "Print"
msgstr "Drucken"
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr "Exportiere Bestellung in Datei"
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr "Bestellung bearbeiten"
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr "Elemente empfangen"
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr "Exportiere Bestellung in Datei"
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr "Bestellungs-Details"
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr "Bestellreferenz"
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr "Bestellstatus"
@@ -3344,16 +3381,6 @@ msgstr "Aufgegeben"
msgid "Edit Purchase Order"
msgstr "Bestellung bearbeiten"
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr "Neuer Lagerort"
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-msgid "Create new stock location"
-msgstr "Neuen Lagerort anlegen"
-
#: order/templates/order/order_cancel.html:8
msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr "Abbruch dieser Bestellung bedeutet, dass sie und ihre Positionen nicht länger bearbeitbar sind."
@@ -3426,6 +3453,7 @@ msgstr "Auswahl duplizieren"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr "Zeile entfernen"
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "Bestellungen auswählen oder anlegen."
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr "Positionen"
@@ -3522,7 +3550,7 @@ msgstr "Bestellung für %(name)s auswählen"
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr "Bestellungs-Anhänge"
@@ -3532,7 +3560,7 @@ msgstr "BestandsObjekte empfangen"
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr "Empfangene Teile"
@@ -3540,14 +3568,22 @@ msgstr "Empfangene Teile"
msgid "Purchase Order Items"
msgstr "Bestellungs-Positionen"
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr "Position hinzufügen"
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr "Ausgewählte Positionen erhalten"
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr "Teile empfangen"
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr "Notizen zur Bestellung"
@@ -3557,67 +3593,24 @@ msgstr "Notizen zur Bestellung"
msgid "Print Order Reports"
msgstr "Berichte drucken"
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr "Ausstehende Teile für %(order)s - %(desc)s empfangen"
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr "Teile"
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr "Bestellnummer"
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr "Bestellt"
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr "Empfangen"
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr "Fehler: verknüpftes Teil wurde gelöscht"
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr "Position entfernen"
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr "Dieser Auftrag ist nicht vollständig zugeordnet"
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr "Packliste"
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr "Auftragsdetails"
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr "Kundenreferenz"
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr "Auftrag bearbeiten"
@@ -3636,105 +3629,6 @@ msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar i
msgid "Sales Order Items"
msgstr "Auftrags-Positionen"
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr "Aktionen"
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr "Bestands-Zuordnung bearbeiten"
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr "Bestands-Zuordnung löschen"
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr "Keine passenden Positionen gefunden"
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr "ID"
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr "Summe"
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr "Stück-Preis"
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr "Gesamtpreis"
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr "Zugeordnet"
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr "Erledigt"
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr "PO"
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr "Seriennummern zuweisen"
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr "Lagerbestand zuweisen"
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr "Lagerbestand kaufen"
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr "Lagerbestand bauen"
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr "Preis berechnen"
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr "Position bearbeiten"
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr "Position löschen "
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr "Position bearbeiten"
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr "Position löschen"
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-msgstr "Stückpreis aktualisieren"
-
#: 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."
msgstr "Dieser Auftrag ist nicht vollständig zugeordnet. Wenn der Auftrag als versendet markiert wird, kann er nicht mehr geändert werden."
@@ -3759,10 +3653,6 @@ msgstr "Versenden dieses Auftrags bedeutet, dass der Auftrag nicht mehr bearbeit
msgid "Allocate stock items by serial number"
msgstr "Teilebestand per Seriennummer zuweisen"
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr "Diese Aktion wird die folgenden BestandsObjekt vom Auftrag entfernen"
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr "Auftragspositionen"
@@ -3775,149 +3665,129 @@ msgstr "Auftragspositionen"
msgid "Sales Order Attachments"
msgstr "Auftrags-Anhänge"
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr "Bestellung stornieren"
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr "Bestellstornierung bestätigen"
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr "Bestellung kann nicht verworfen werden"
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr "Auftrag stornieren"
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr "Bestellung aufgeben"
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr "Bestellungstätigung bestätigen"
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr "Bestellung plaziert"
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr "Auftrag fertigstellen"
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr "Fertigstellung bestätigen"
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr "Bestellung als vollständig markieren"
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr "Versenden"
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr "Versand bestätigen"
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr "Versand fehlgeschlagen"
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr "Zuliefererteile zuordnen"
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr "Teile empfangen"
-
-#: order/views.py:552
-msgid "Items received"
-msgstr "Anzahl empfangener Positionen"
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr "Fehler beim Konvertieren zu Zahl"
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr "Anzahl kleiner null empfangen"
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr "Keine Zeilen angegeben"
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr "Preise aktualisieren"
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr "{n} Teile bestellt"
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr "Seriennummern zuweisen"
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr "{n} Positionen zugeordnet"
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr "Position auswählen"
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr "Kein passends Teil für Seriennummer {serial} gefunden"
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr "{serial} ist nicht auf Lager"
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr "{serial} bereits einem Auftrag zugeordnet"
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr "Lagerbestand dem Auftrag zuweisen"
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr "Zuordnung bearbeiten"
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr "Zuordnung entfernen"
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr "Auftrag nicht gefunden"
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr "Preis nicht gefunden"
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr "Stückpreis für {part} auf {price} aktualisiert"
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr "{part} Stückpreis auf {price} und Menge auf {qty} aktualisiert"
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "Teile"
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr "Muss größer als 0 sein"
@@ -3934,7 +3804,7 @@ msgstr "Standort für anfänglichen Bestand angeben"
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr "Standard-Lagerort"
@@ -3999,7 +3869,7 @@ msgstr "Zulieferer einschließen"
msgid "Include part supplier data in exported BOM"
msgstr "Zulieferer-Daten in Stückliste-Export einschließen"
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr "Ausgangsteil"
@@ -4043,391 +3913,387 @@ msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr "Standard-Lagerort für Teile dieser Kategorie"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr "Standard Stichwörter"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr "Teil-Kategorien"
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr "Ungültige Auswahl für übergeordnetes Teil"
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)"
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr "Nächste verfügbare Seriennummern wären"
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr "Nächste verfügbare Seriennummer ist"
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr "Die neuste Seriennummer ist"
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr "Variante von"
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr "Revision"
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr "Ablauf-Zeit (in Tagen) für Lagerbestand dieses Teils"
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr "Minimaler Lagerbestand"
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr "Minimal zulässiger Lagerbestand"
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr "Aktiv"
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?"
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden"
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil"
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr "Muss für diesen Test ein Wert für das Test-Ergebnis eingetragen werden?"
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr "Muss für diesen Test ein Anhang für das Test-Ergebnis hinzugefügt werden?"
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Ungültiges Zeichen im Vorlagename ({c})"
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr "Wert"
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Diese Stücklisten-Position wird in die Stücklisten von Teil-Varianten vererbt"
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Lagerbestand von Varianten kann für diese Stücklisten-Position verwendet werden"
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr "Stücklisten-Position"
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?"
@@ -4578,7 +4444,7 @@ msgstr "Exportieren"
msgid "Create new part"
msgstr "Neues Teil anlegen"
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr "Neues Teil"
@@ -4658,7 +4524,7 @@ msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. v
msgid "Import Parts"
msgstr "Teile importieren"
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr "Teil duplizieren"
@@ -4785,34 +4651,26 @@ msgstr "Stücklisten-Position anlegen"
msgid "Add Test Result Template"
msgstr "Testergebnis-Vorlage hinzufügen"
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr "Testergebnis-Vorlage bearbeiten"
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr "Testergebnis-Vorlage löschen"
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr "Teilenotizen bearbeiten"
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr "Stückpreis Einkauf - %(currency)s"
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr "Stückpreis Differenz - %(currency)s"
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr "Stückpreis Zulieferer - %(currency)s"
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr "Stückpreis - %(currency)s"
@@ -4874,9 +4732,9 @@ msgstr "Teil kann an Kunden verkauft werden"
msgid "Part is virtual (not a physical part)"
msgstr "Teil ist virtuell (kein physisches Teil)"
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr "Inaktiv"
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr "Dieses Teil ist eine Variante von %(link)s"
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr "Auf Lager"
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr "Bestellt"
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr "Für Bauaufträge benötigt"
@@ -4958,18 +4822,18 @@ msgstr "Benötigt für Aufträge"
msgid "Allocated to Orders"
msgstr "Zu Bauaufträgen zugeordnet"
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr "Herstellbar"
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr "Im Bau"
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr "Teildetails anzeigen"
@@ -4977,16 +4841,16 @@ msgstr "Teildetails anzeigen"
msgid "Latest Serial Number"
msgstr "letzte Seriennummer"
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr "Berechnen"
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr "Keine passenden Bilder gefunden"
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr "Teildetails ausblenden"
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr "Gesamtkosten"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr "Keine Zulieferer-Preise verfügbar"
@@ -5051,32 +4915,41 @@ msgstr "Keine Preise für dieses Teil verfügbar"
msgid "Select from existing images"
msgstr "Aus vorhandenen Bildern auswählen"
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr "Teil '%(full_name)s' kann nicht gelöscht werden, da er noch als aktivmarkiert ist.\n"
+"
Deaktivieren Sie das Attribut \"Aktiv\" und versuchen Sie es erneut.\n"
+" "
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr "Sind Sie sicher, dass Sie das Teil '%(full_name)s' löschen wollen?"
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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 "Dieser Teil wird in Stücklisten für %(count)s andere Teile verwendet. Wenn Sie dieses Teil löschen, werden die Stücklisten für die folgenden Teile aktualisiert"
-#: part/templates/part/partial_delete.html:22
+#: part/templates/part/partial_delete.html:32
#, 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 "Es sind %(count)s BestandsObjekte für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Bestandseinträge gelöscht:"
-#: part/templates/part/partial_delete.html:33
+#: part/templates/part/partial_delete.html:43
#, 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 "Es sind %(count)s Hersteller für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Herstellerteile gelöscht:"
-#: part/templates/part/partial_delete.html:44
+#: part/templates/part/partial_delete.html:54
#, 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 "Es sind %(count)s Zulieferer für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Zuliefererteile gelöscht:"
-#: part/templates/part/partial_delete.html:55
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr "Es gibt %(count)s einzigartige Teile, die für '%(full_name)s' verfolgt werden. Das Löschen dieses Teils wird diese Tracking-Informationen dauerhaft entfernen."
@@ -5109,7 +4982,7 @@ msgstr "Verkaufspreis anzeigen"
msgid "Calculation parameters"
msgstr "Berechnungsparameter"
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr "Zuliefererkosten"
@@ -5151,8 +5024,9 @@ msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar."
msgid "Set category for the following parts"
msgstr "Kategorie für Teile setzen"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr "Kein Bestand"
@@ -5262,7 +5136,7 @@ msgstr "Teilparametervorlage bearbeiten"
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
@@ -5400,17 +5274,17 @@ msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr "Ergebnis"
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr "Datum"
@@ -5422,51 +5296,9 @@ msgstr "bestanden"
msgid "Fail"
msgstr "fehlgeschlagen"
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr "Falsch formatierte Daten"
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr "Ungültige Menge"
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr "Menge muss größer als Null sein"
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr "Bestand für {n} Objekte geändert"
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr "Die angegebene Menge überschreitet die Lagermenge"
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr "Gültiger Standort muss angegeben werden"
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr "{n} Teile nach {loc} bewegt"
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr "Ablaufdatum"
@@ -5642,11 +5474,11 @@ msgstr "Preis für eine Einheit bei Einkauf"
#: stock/models.py:599
msgid "Scheduled for deletion"
-msgstr ""
+msgstr "Zur Löschung vorgesehen"
#: stock/models.py:600
msgid "This StockItem will be deleted by the background worker"
-msgstr ""
+msgstr "Dieser Lagerbestand wird vom Hintergrund-Prozess gelöscht"
#: stock/models.py:1063
msgid "Part is not set as trackable"
@@ -5678,38 +5510,54 @@ msgstr "Seriennummern {exists} existieren bereits"
msgid "StockItem cannot be moved as it is not in stock"
msgstr "BestandsObjekt kann nicht bewegt werden, da kein Bestand vorhanden ist"
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr "Test Notizen"
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr "Bestandsbewegungsnotizen"
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr "Eine Liste der Lagerbestände muss angegeben werden"
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr "Ziel-Lagerbestand"
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr "Informationen zum Lagerbestands-Tracking"
@@ -5747,7 +5595,7 @@ msgstr "Test-Bericht"
msgid "Installed Stock Items"
msgstr "Installierte BestandsObjekte"
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr "BestandsObjekt installiert"
@@ -5910,7 +5758,7 @@ msgid "next page"
msgstr "nächste Seite"
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr "Kein Lagerort gesetzt"
@@ -5937,7 +5785,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Dieses BestandsObjekt läuft am %(item.expiry_date)s ab"
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
@@ -6019,6 +5867,10 @@ msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands
msgid "All stock items"
msgstr "Alle BestandsObjekte"
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr "Neuen Lagerort anlegen"
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr "Teile einchecken"
@@ -6058,7 +5910,7 @@ msgstr "Unter-Lagerorte"
msgid "Stock Details"
msgstr "Objekt-Details"
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
@@ -6071,6 +5923,10 @@ msgstr "Druck Aktionen"
msgid "Print labels"
msgstr "Label drucken"
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr "Neuer Lagerort"
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr "Neuen Lagerort anlegen"
@@ -6111,7 +5967,7 @@ msgstr "Lade..."
msgid "The following stock items will be uninstalled"
msgstr "Die folgenden BestandsObjekte werden nicht mehr verbaut"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr "BestandsObjekt umwandeln"
@@ -6132,104 +5988,104 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr "Sind Sie sicher, dass Sie diesen BestandsObjekt-Verfolgungs-Eintrag löschen wollen?"
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr "BestandsObjekt-Lagerort bearbeiten"
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)"
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr "QR-Code für diesen Lagerort"
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr "Kunden zuweisen"
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr "Kunde muss angegeben werden"
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr "zurück ins Lager"
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr "gültigen Lagerort angeben"
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr "BestandsObjekt retoure vom Kunden"
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr "alle Testdaten löschen"
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr "Löschen Testdaten bestätigen"
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr "BestandsObjekt-QR-Code"
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr "BestandsObjekte deinstallieren"
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr "BestandsObjekte deinstalliert"
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr "BestandsObjekt bearbeiten"
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr "Neuen Lagerort erstellen"
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr "Lagerbestand erfassen"
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr "Neues BestandsObjekt hinzufügen"
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr "Anzahl kann nicht negativ sein"
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr "Bestand-Lagerort löschen"
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr "BestandsObjekt löschen"
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag löschen"
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag bearbeiten"
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr "Lagerbestands-Tracking-Eintrag hinzufügen"
@@ -6313,14 +6169,6 @@ msgstr "Suchergebnisse"
msgid "Enter a search query"
msgstr "Eine Sucheanfrage eingeben"
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr "an Kunde versand"
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr "Kein Lagerort gesetzt"
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr "Barcode-Einstellungen"
@@ -6365,6 +6213,14 @@ msgstr "Server Einstellungen"
msgid "Setting"
msgstr "Einstellungen"
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6238,7 @@ msgstr "Startseite"
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr "Suche"
@@ -6397,38 +6253,48 @@ msgstr "Labels"
msgid "Reports"
msgstr "Berichte"
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr "Formulare"
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr "Einstellungen"
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr "InvenTree-Einstellungen"
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr "Server"
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr "Barcodes"
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
-msgstr "Währungen"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
+msgstr "Einloggen"
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
-msgstr "Berichte"
+msgid "Barcodes"
+msgstr "Barcodes"
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
+msgstr "Währungen"
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr "Berichte"
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr "Kategorien"
@@ -6469,21 +6335,21 @@ msgstr "Kein Wert angegeben"
msgid "Edit setting"
msgstr "Einstellungen ändern"
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr "Keine Kategorie-Parametervorlagen gefunden"
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr "Vorlage bearbeiten"
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr "Vorlage löschen"
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr "Keine Teilparametervorlagen gefunden"
@@ -6495,70 +6361,140 @@ msgstr "Auftrags-Einstellungen"
msgid "Stock Settings"
msgstr "Bestands-Einstellungen"
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr "Kontoeinstellungen"
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr "Bearbeiten"
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr "Passwort ändern"
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr "Benutzername"
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr "Vorname"
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr "Nachname"
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
-msgstr "Mail-Adresse"
-
#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
msgid "Theme Settings"
msgstr "Anzeige-Einstellungen"
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr "Design auswählen"
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr "Spracheinstellung"
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr "%(lang_translated)s%% übersetzt"
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr "Keine Übersetzungen verfügbar"
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr "Sprache festlegen"
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr "Hilf bei der Übersetzung!"
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr "Die Übersetzung von InvenTree wird von Nutzern mit Crowdin betrieben. Wir ermutigen zur und freuen uns über jeden Mithilfe!"
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr "Formulareinstellungen"
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr "Startseite-Einstellungen"
@@ -6581,7 +6517,7 @@ msgstr "InvenTree-Version"
#: templates/about.html:27
msgid "Development Version"
-msgstr ""
+msgstr "Entwicklungsversion"
#: templates/about.html:30
msgid "Up to Date"
@@ -6641,11 +6577,108 @@ msgstr "Versionsinformationen kopieren"
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr "Schliessen"
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr "URL für Bild-Donwload angeben"
@@ -6675,7 +6708,7 @@ msgid "Select Test Report Template"
msgstr "Test-Bericht-Vorlage auswählen"
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr "BestandsObjekte auswählen"
@@ -6707,8 +6740,8 @@ msgstr "Bauauftrag muss vor dem Berichtsdruck ausgewählt werden"
msgid "No report templates found which match selected build(s)"
msgstr "Keine Berichtvorlagen für ausgewählten Bauauftrag gefunden"
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Teile auswählen"
@@ -6741,11 +6774,11 @@ msgstr "Aufträge auswählen"
msgid "Sales Order(s) must be selected before printing report"
msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr "Keine Antwort"
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr "keine Antwort vom InvenTree Server"
@@ -6757,35 +6790,35 @@ msgstr "Fehler 400: Fehlerhafte Anfrage"
msgid "API request returned error code 400"
msgstr "Fehler-Code 400 zurückgegeben"
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr "Fehler 401: Nicht Angemeldet"
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr "Authentication Kredentials nicht angegeben"
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr "Fehler 403: keine Berechtigung"
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr "Fehlende Berechtigung für diese Aktion"
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr "Fehler 404: Ressource nicht gefunden"
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden"
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr "Fehler 408: Zeitüberschreitung"
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
@@ -6842,7 +6875,7 @@ msgid "Unknown response from server"
msgstr "Unbekannte Antwort von Server erhalten"
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr "Ungültige Antwort von Server"
@@ -6870,7 +6903,7 @@ msgstr "Dadurch wird die Verknüpfung zwischen diesem BestandsObjekt und dem Bar
msgid "Unlink"
msgstr "Entfernen"
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr "BestandsObjekt entfernen"
@@ -6912,115 +6945,181 @@ msgstr "In Lagerorten buchen"
msgid "Barcode does not match a valid location"
msgstr "Barcode entspricht keinem Lagerort"
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr "Unterbaugruppe öffnen"
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr "Verfügbar"
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr "Kaufpreisspanne"
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr "Durchschnittlicher Kaufpreis"
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr "Stückliste anzeigen"
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr "Aktionen"
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr "Stücklisten-Position kontrollieren"
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr "Diese Position wurde kontrolliert"
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr "Stücklisten-Position bearbeiten"
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr "Keine Stücklisten-Position(en) gefunden"
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr "Bauauftrag bearbeiten"
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr "Bauauftrag erstellen"
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
-msgstr "Teilbestand automatisch Endprodukt zuweisen"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
+msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr "Bestand von Endpordukt zurücknehmen"
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr "Endprodukt fertigstellen"
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr "Endprodukt entfernen"
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
-msgstr ""
+msgstr "Keine Allokationen für Bauauftrag gefunden"
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr "Standort nicht angegeben"
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr "Neues BestandsObjekt"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
+msgstr "Bestands-Zuordnung bearbeiten"
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr "Bestands-Zuordnung löschen"
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr "Zuordnung bearbeiten"
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr "Zuordnung entfernen"
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr "benötigtes Teil"
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr "Anzahl pro"
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr "Zugeordnet"
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr "Lagerbestand bauen"
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr "Bestand bestellen"
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr "Lagerbestand zuweisen"
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr "Anzahl für Bestandszuordnung eingeben"
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr "Sie müssen mindestens ein Teil auswählen"
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr "Wählen Sie den Quellort aus (leer lassen um von allen Standorten zu nehmen)"
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr "Bestandszuordnung bestätigen"
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr "Lagerbestand für Bauauftrag zuweisen"
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr "Keine passenden Lagerstandorte"
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr "Keine passenden Lagerbestände"
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr "Auswählen"
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr "Bauauftrag ist überfällig"
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr "Keine Benutzerinformation"
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr "Keine Information"
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr "Keine Teile zugeordnet zu"
@@ -7040,7 +7139,7 @@ msgstr "Herstellerteil ändern"
msgid "Delete Manufacturer Part"
msgstr "Herstellerteil löschen"
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr "Zulieferer hinzufügen"
@@ -7084,53 +7183,53 @@ msgstr "Die folgenden Herstellerteile werden gelöscht"
msgid "Delete Manufacturer Parts"
msgstr "Herstellerteile löschen"
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr "Vorlagenteil"
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr "Keine Parameter gefunden"
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr "Keine Zuliefererteile gefunden"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr "ja"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr "nein"
@@ -7138,19 +7237,19 @@ msgstr "nein"
msgid "Select filter"
msgstr "Filter auswählen"
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr "Daten neu laden"
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr "Filter hinzufügen"
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr "Filter entfernen"
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr "Filter anlegen"
@@ -7175,16 +7274,20 @@ msgstr "Löschvorgang nicht erlaubt"
msgid "View operation not allowed"
msgstr "Anzeigevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr "Keine Ergebnisse gefunden"
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr "Eingabe leeren"
@@ -7247,7 +7350,7 @@ msgid "Cancel"
msgstr "Abbrechen"
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr "Abschicken"
@@ -7272,31 +7375,31 @@ msgstr "Akzeptieren"
msgid "Loading Data"
msgstr "Lade Daten"
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr "ungültige Antwort vom Server"
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr "Formulardaten fehlen bei Serverantwort"
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr "Formulardaten fehlerhaft"
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr "JSON Antwort enthält keine Formulardaten"
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr "Fehler 400: Ungültige Anfrage"
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr "Fehler 400 von Server erhalten"
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr "Fehler bei Formulardaten-Anfrage"
@@ -7304,69 +7407,194 @@ msgstr "Fehler bei Formulardaten-Anfrage"
msgid "Company ID"
msgstr "Firmen-ID"
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr "Bestands-ID"
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr "Standort-ID"
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr "Bauauftrag-ID"
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr "Teil-ID"
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr "Bestell-ID"
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr "Kategorie-ID"
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr "Herstellerteil-ID"
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr "Zuliefererteil-ID"
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr "Kunden hinzufügen"
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr "Auftrag anlegen"
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr "Bestellung exportieren"
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr "Format"
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr "Dateiformat auswählen"
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr "Positionen auswählen"
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr "Mindestens eine Position muss ausgewählt werden"
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr "Zu erhaltende Menge"
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr "Status"
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr "Bestellnummer"
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr "Bestellt"
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr "Empfangen"
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr "Empfang der Teile bestätigen"
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr "Bestellpositionen erhalten"
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr "Keine Bestellungen gefunden"
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr "Bestellung überfällig"
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr "Position bearbeiten"
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr "Position löschen"
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr "Keine Positionen gefunden"
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr "Summe"
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr "Stück-Preis"
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr "Gesamtpreis"
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr "Position bearbeiten"
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr "Position empfangen"
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr "Keine Aufträge gefunden"
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr "Ungültiger Kunde"
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
-msgstr ""
+msgstr "Keine Allokationen für Verkaufsaufträge gefunden"
+
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr "Bestandszuordnung bearbeiten"
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr "Bestands-Zuordnung löschen"
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr "Lagerstandort nicht angegeben"
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr "Erledigt"
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr "Seriennummern zuweisen"
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr "Lagerbestand kaufen"
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr "Preis berechnen"
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr "Position löschen "
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr "Lagerbestand zuweisen"
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr "Stückpreis aktualisieren"
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr "Keine passenden Positionen gefunden"
#: templates/js/translated/part.js:49
msgid "Part Attributes"
@@ -7388,396 +7616,396 @@ msgstr "Zuliefereroptionen"
msgid "Add Part Category"
msgstr "Teil-Kategorie hinzufügen"
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr "Anfänglichen Bestand erstellen"
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr "Anfänglichen Bestand für dieses Teil erstellen"
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr "Start-Bestandsmenge"
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr "Menge des anfänglichen Bestands für dieses Teil angeben"
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr "Zielstandort auswählen"
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr "Kategorieparameter kopieren"
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
-msgstr ""
+msgstr "Parametervorlagen aus der ausgewählten Bauteilkategorie kopieren"
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr "Zuliefererdaten hinzufügen"
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
-msgstr ""
+msgstr "Erstelle ersten Lieferanten für dieses Teil"
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr "Bild kopieren"
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr "Bild vom Originalteil kopieren"
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr "Stückliste kopieren"
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr "Stückliste vom Originalteil kopieren"
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr "Parameter kopieren"
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr "Parameterdaten vom Originalteil kopieren"
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr "Übergeordnete Teilkategorie"
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr "Teil bearbeiten"
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr "Nachverfolgbares Teil"
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr "virtuelles Teil"
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr "Favoritenteil"
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr "Verkäufliches Teil"
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr "Keine Varianten gefunden"
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr "Keine Teile gefunden"
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr "Pfad"
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr "Testergebnis-Vorlage bearbeiten"
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr "Testergebnis-Vorlage löschen"
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Keine ${human_name} Informationen gefunden"
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} bearbeiten"
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} löschen"
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr "Einzelpreis"
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr "Bestand exportieren"
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr "Format"
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr "Dateiformat auswählen"
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr "Einschließlich Unterstandorte"
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
-msgstr ""
+msgstr "Bestand in untergeordneten Lagerorten einschließen"
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr "Bestand verschieben"
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr "Verschieben"
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr "Bestand zählen"
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr "Anzahl"
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr "Bestand entfernen"
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr "Entfernen"
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr "Hinzufügen"
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr "Bestand löschen"
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden"
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr "Bestandsanzahl angeben"
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr "Sie müssen mindestens einen Lagerbestand auswählen"
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr "Bestandsbewegungsnotizen"
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr "ERFOLGREICH"
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr "FEHLGESCHLAGEN"
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr "KEIN ERGEBNIS"
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr "Testergebnis hinzufügen"
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr "Keine Testergebnisse gefunden"
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr "Testdatum"
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr "In Arbeit"
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr "In BestandsObjekt installiert"
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr "an Kunde versand"
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr "Auftrag zugewiesen"
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr "Kein Lagerort gesetzt"
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr "BestandsObjekt wird produziert"
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr "BestandsObjekt wurde Auftrag zugewiesen"
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr "BestandsObjekt wurde Kunden zugewiesen"
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr "BestandsObjekt ist abgelaufen"
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr "BestandsObjekt läuft demnächst ab"
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr "BestandsObjekt zugewiesen"
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr "BestandsObjekt in anderem Element verbaut"
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr "BestandsObjekt abgewiesen"
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr "BestandsObjekt verloren"
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr "BestandsObjekt zerstört"
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr "gelöscht"
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr "Inventur"
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
-msgstr ""
+msgstr "Zuliefererteil nicht angegeben"
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr "Keine zur Anfrage passenden BestandsObjekte"
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr "Teile"
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr "lose"
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr "Lagerorte"
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr "unbekannter Lagerort"
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr "Status"
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr "Ungültiges Datum"
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr "Lagerbestand existiert nicht mehr"
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr "Tracking-Eintrag bearbeiten"
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr "Tracking-Eintrag löschen"
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr "Seriennummer"
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr "Lagerbestand entfernen"
@@ -7808,7 +8036,7 @@ msgstr "Lagerorte einschließen"
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr "Unterkategorien einschließen"
@@ -7850,7 +8078,7 @@ msgid "Batch code"
msgstr "Losnummer"
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr "Aktive Teile"
@@ -7935,89 +8163,89 @@ msgstr "Bestand, der bald ablaufen, anzeigen"
msgid "Build status"
msgstr "Bauauftrags-Status"
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr "Bestellstatus"
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr "ausstehend"
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr "Teile in Unterkategorien einschließen"
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr "Hat IPN"
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr "Teil hat Interne Teilenummer"
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr "Aktive Teile anzeigen"
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr "verfügbarer Lagerbestand"
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr "Favorit"
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr "Käuflich"
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr "Lade Daten"
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr "Zeilen pro Seite"
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr "zeige"
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr "bis"
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr "von"
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr "Zeilen"
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr "Keine passenden Ergebnisse gefunden"
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr "Zeige/Verstecke Pagination"
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr "Neu laden"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr "umschalten"
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr "Spalten"
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr "Alle"
@@ -8033,19 +8261,15 @@ msgstr "Kaufen"
msgid "Sell"
msgstr "Verkaufen"
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr "Admin"
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr "Ausloggen"
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr "Einloggen"
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr "Über InvenTree"
@@ -8053,69 +8277,13 @@ msgstr "Über InvenTree"
msgid "QR data not provided"
msgstr "QR Daten nicht angegeben"
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
-msgstr "Sie wurden abgemeldet"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
+msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr "Zurück zur Anmeldeseite"
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr "Benutzername eingeben"
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr "Passwort"
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr "Benutzername / Passwort Kombination ist falsch"
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr "Passwort vergessen?"
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr "Hier klicken zum Zurücksetzen"
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr "Passwort erfolgreich zurückgesetzt"
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-msgid "Change password"
-msgstr "Passwort ändern"
-
-#: 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."
-msgstr "Der Link zum Zurücksetzen des Kennworts war ungültig, möglicherweise, weil er bereits verwendet wurde. Bitte fordern Sie eine neue Passwortwiederherstellung an."
-
-#: 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."
-msgstr "Wir haben Ihnen per E-Mail Anweisungen zum Setzen Ihres Passworts zugeschickt, falls ein Konto mit der von Ihnen eingegebenen E-Mail existiert. Sie sollten diese in Kürze erhalten."
-
-#: 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 "Wenn Sie keine E-Mail erhalten, stellen Sie sicher, dass Sie die E-Mail Adresse eingegeben haben, mit der Sie sich registriert haben, und überprüfen Sie Ihren Spam-Ordner."
-
-#: templates/registration/password_reset_form.html:52
-msgid "Enter your email address below."
-msgstr "Geben Sie Ihre E-Mail-Adresse ein."
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr "Eine E-Mail mit Anweisungen zum Zurücksetzen des Passworts wird gesendet."
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
-msgstr "E-Mail senden"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
+msgstr ""
#: templates/stats.html:13
msgid "Instance Name"
@@ -8169,6 +8337,10 @@ msgstr "E-Mail-Einstellungen nicht konfiguriert"
msgid "Export Stock Information"
msgstr "Aktuellen Bestand exportieren"
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr "Neues BestandsObjekt"
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr "Barcode Aktionen"
@@ -8249,35 +8421,35 @@ msgstr "Berechtigungen"
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr "Gruppe"
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr "Ansicht"
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr "Ändern"
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index b9d642169d..880c7b29d6 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -33,48 +33,61 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr ""
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -102,7 +115,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr ""
@@ -118,10 +131,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr ""
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr ""
@@ -200,7 +210,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -208,75 +218,75 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr ""
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr ""
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr ""
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr ""
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr ""
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr ""
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index b66b45bb37..199e95b752 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -33,48 +33,61 @@ msgstr "No se encontró ninguna acción coincidente"
msgid "Enter date"
msgstr "Ingrese la fecha"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Confirmar"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "Confirmar eliminación"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr "Confirmar borrado de artículo"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "Introduzca contraseña"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "Ingrese su nueva contraseña"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "Confirmar la contraseña"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "Confirmar contraseña nueva"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "Seleccionar Categoría"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Número de serie duplicado: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Cantidad proporcionada no válida"
@@ -102,7 +115,7 @@ msgstr "Numeros de serie no encontrados"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "El número de números de serie únicos ({s}) debe coincidir con la cantidad ({q})"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "Archivo adjunto"
@@ -118,10 +131,10 @@ msgstr "Comentario"
msgid "File comment"
msgstr "Comentario del archivo"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "Usuario"
@@ -158,37 +171,34 @@ msgstr "Error al cambiar el nombre del archivo"
msgid "Invalid choice"
msgstr "Selección no válida"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "Nombre"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "Descripción"
@@ -200,7 +210,7 @@ msgstr "Descripción (opcional)"
msgid "parent"
msgstr "padre"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Debe ser un numero valido"
@@ -208,75 +218,75 @@ msgstr "Debe ser un numero valido"
msgid "Filename"
msgstr "Nombre de Archivo"
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "Alemán"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr "Griego"
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "Inglés"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr "Español"
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "Francés"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr "Hebreo"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr "Japonés"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr "Holandés"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr "Noruego"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "Polaco"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr "Ruso"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr "Sueco"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr "Tailandés"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr "Chino"
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr "Devuelto"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "Enviado"
@@ -461,27 +471,27 @@ msgstr "El excedente no debe superar el 100%"
msgid "Overage must be an integer value or a percentage"
msgstr "El excedente debe ser un valor entero o un porcentaje"
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr "Eliminar elemento"
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr "Marque la casilla para confirmar la eliminación del artículo"
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr "Editar datos del usuario"
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr "Configurar Contraseña"
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr "Los campos de contraseña deben coincidir"
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr "Información del sistema"
@@ -525,6 +535,10 @@ msgstr "El código de barras ya está asignado a un objeto de inventario"
msgid "Barcode associated with StockItem"
msgstr "Código de barras asignado al objeto de inventario"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Número de orden de construcción"
@@ -536,33 +550,28 @@ msgstr "Fecha objetivo de pedido"
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr "Fecha objetivo"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr "Fecha límite para la finalización de la construcción. La construcció
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr "Cantidad"
@@ -589,7 +600,7 @@ msgstr "Número de elementos para construir"
msgid "Enter quantity for build output"
msgstr "Ingrese la cantidad para la producción de la construcción"
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr "Números de serie"
@@ -609,246 +620,238 @@ msgstr "Confirmar eliminación de salida de construcción"
msgid "Confirm unallocation of stock"
msgstr "Confirmar la desasignación de stock"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Confirmar asignación de stock"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Marcar como construcción completa"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr "Unicación"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Ubicación de las partes completadas"
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr "Estado"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Generar estado de stock de salida"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Confirmar incompleta"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Confirmar la finalización con una asignación de stock incompleta"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Confirmar la terminación de construcción"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Confirmar cancelación"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Confirmar la cancelación de construcción"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Seleccione la cantidad de stock para asignar"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr "Opción no válida para la construcción padre"
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr "Construir órden"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr "Construir órdenes"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr "Referencia"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr "Parte"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
-msgstr ""
+msgstr "Ubicación de la fuente"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
-msgstr ""
+msgstr "Ubicación de destino"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
-msgstr ""
+msgstr "Seleccione la ubicación donde se almacenarán los elementos completados"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Cantidad a crear"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "Número de objetos existentes a construir"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Elementos completados"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Número de productos en stock que se han completado"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Estado de la construcción"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Código de estado de construcción"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "Numero de lote"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "Número de lote de este producto final"
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr "Fecha de Creación"
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "Fecha límite de finalización"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr "Fecha de finalización"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "terminado por"
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr "Emitido por"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "El usuario que emitió esta orden"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr "Responsable"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Usuario responsable de esta orden"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr "Usuario responsable de esta orden"
msgid "External Link"
msgstr "Link externo"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Enlace a URL externa"
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr "Notas"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Notas adicionales de construcción"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "No se ha especificado salida de construcción"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "La construcción de la salida ya está completa"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr "La salida de la construcción no coincide con el orden de construcción"
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
+msgstr "La cantidad debe ser 1 para el stock serializado"
+
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
-msgstr ""
-
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr "Número de serie"
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr "Progreso"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr "Destinación"
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr "Lote"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr "Completados"
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr "Detalles"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr "días"
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr "Página web"
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr "Teléfono"
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr "Teléfono de contacto"
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr "Email"
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr "Contacto"
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr "Fabricante"
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr "Proveedor"
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Nota"
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr "Teléfono"
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr "Cliente"
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr "Eliminar"
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr "Fabricantes"
@@ -2908,7 +2948,7 @@ msgstr "Fabricantes"
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr "Exportar"
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr "Confirmar asignación de stock"
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index a44d04150e..6a73b7e40a 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:28\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -33,48 +33,61 @@ msgstr "Aucune action correspondante trouvée"
msgid "Enter date"
msgstr "Entrer la date"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Confirmer"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "Confirmer la suppression"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr "Confirmer la suppression de cet élément"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "Entrer le mot de passe"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "Entrer le nouveau mot de passe"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "Confirmez le mot de passe"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "Confirmer le nouveau mot de passe"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "Sélectionnez une catégorie"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dupliquer le numéro de série: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
@@ -102,7 +115,7 @@ msgstr "Aucun numéro de série trouvé"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "Pièce jointe"
@@ -118,10 +131,10 @@ msgstr "Commentaire"
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "Utilisateur"
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "Description"
@@ -200,7 +210,7 @@ msgstr "Description (facultative)"
msgid "parent"
msgstr "parent"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -208,75 +218,75 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr ""
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr "Retourné"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "Expédié"
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr "Supprimer cet élément"
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr "Modifier les informations utilisateur"
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr "Informations système"
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr "Quantité"
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr "Numéros de série"
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Emplacement des pièces terminées"
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr "Référence"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr "Pièce"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Sélectionnez la pièce à construire"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr "Notes"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "L'élément de construction doit spécifier une sortie de construction, la pièce maîtresse étant marquée comme objet traçable"
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
-msgstr "L'article en stock sélectionné n'a pas été trouvé dans la BOM pour la pièce '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
+msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr "Commander les pièces requises"
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr "Commander des pièces"
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr "Pieces jointes"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr "Détails"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr "Disponible"
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr "{name.title()} Fichier"
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr "jours"
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr "IPN"
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr "Disponible"
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr "A un IPN"
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index fc12e2bd83..049d8cac93 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:28\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -33,48 +33,61 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr ""
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -102,7 +115,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr ""
@@ -118,10 +131,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr ""
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr ""
@@ -200,7 +210,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -208,75 +218,75 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr ""
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr ""
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr ""
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr ""
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr ""
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr ""
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 55af0d653e..1ccc38461c 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:28\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -33,48 +33,61 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr ""
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -102,7 +115,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr ""
@@ -118,10 +131,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr ""
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr ""
@@ -200,7 +210,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -208,75 +218,75 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr ""
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr ""
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr ""
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr ""
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr ""
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr ""
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index fa012e8d93..d9a8643afa 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -19,7 +19,7 @@ msgstr ""
#: InvenTree/api.py:64
msgid "API endpoint not found"
-msgstr ""
+msgstr "Endpoint API non trovato"
#: InvenTree/api.py:110
msgid "No action specified"
@@ -33,264 +33,274 @@ msgstr "Nessuna azione corrispondente trovata"
msgid "Enter date"
msgstr "Inserisci la data"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Conferma"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
-msgstr ""
+msgstr "Conferma eliminazione"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
-msgstr ""
+msgstr "Conferma eliminazione elementi"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "Inserire la password"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "Inserire una nuova password"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "Conferma la password"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "Conferma la nuova password"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "Selezione una categoria"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
-msgstr ""
+msgstr "Seriale Duplicato: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
-msgstr ""
+msgstr "Quantità inserita non valida"
#: InvenTree/helpers.py:411
msgid "Empty serial number string"
-msgstr ""
+msgstr "Numero seriale vuoto"
#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Invalid group: {g}"
-msgstr ""
+msgstr "Gruppo non valido: {g}"
#: InvenTree/helpers.py:469
#, python-brace-format
msgid "Duplicate serial: {g}"
-msgstr ""
+msgstr "Seriale duplicato: {g}"
#: InvenTree/helpers.py:477
msgid "No serial numbers found"
-msgstr ""
+msgstr "Nessun numero di serie trovato"
#: InvenTree/helpers.py:481
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
-msgstr ""
+msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
-msgstr ""
+msgstr "Allegato"
#: InvenTree/models.py:67
msgid "Select file to attach"
-msgstr ""
+msgstr "Seleziona file da allegare"
#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
msgid "Comment"
-msgstr ""
+msgstr "Commento"
#: InvenTree/models.py:69
msgid "File comment"
-msgstr ""
+msgstr "Commento del file"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
-msgstr ""
+msgstr "Utente"
#: InvenTree/models.py:79
msgid "upload date"
-msgstr ""
+msgstr "data caricamento"
#: InvenTree/models.py:99
msgid "Filename must not be empty"
-msgstr ""
+msgstr "Il nome del file non deve essere vuoto"
#: InvenTree/models.py:122
msgid "Invalid attachment directory"
-msgstr ""
+msgstr "Directory allegati non valida"
#: InvenTree/models.py:132
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
-msgstr ""
+msgstr "Il nome del file contiene caratteri non validi '{c}'"
#: InvenTree/models.py:135
msgid "Filename missing extension"
-msgstr ""
+msgstr "Nome file estensione mancante"
#: InvenTree/models.py:142
msgid "Attachment with this filename already exists"
-msgstr ""
+msgstr "Esiste già un allegato con questo nome di file"
#: InvenTree/models.py:149
msgid "Error renaming file"
-msgstr ""
+msgstr "Errore nella rinominazione del file"
#: InvenTree/models.py:184
msgid "Invalid choice"
-msgstr ""
+msgstr "Scelta non valida"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
-msgstr ""
+msgstr "Nome"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
-msgstr ""
+msgstr "Descrizione"
#: InvenTree/models.py:208
msgid "Description (optional)"
-msgstr ""
+msgstr "Descrizione (opzionale)"
#: InvenTree/models.py:216
msgid "parent"
-msgstr ""
+msgstr "genitore"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
-msgstr ""
+msgstr "Deve essere un numero valido"
#: InvenTree/serializers.py:244
msgid "Filename"
-msgstr ""
+msgstr "Nome del file"
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr "Cinese"
#: InvenTree/status.py:94
msgid "Background worker check failed"
-msgstr ""
+msgstr "Controllo in background non riuscito"
#: InvenTree/status.py:98
msgid "Email backend not configured"
-msgstr ""
+msgstr "Server di posta non configurato"
#: InvenTree/status.py:101
msgid "InvenTree system health checks failed"
-msgstr ""
+msgstr "Controlli di sistema InvenTree falliti"
#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
#: InvenTree/status_codes.py:314
@@ -299,7 +309,7 @@ msgstr "In attesa"
#: InvenTree/status_codes.py:105
msgid "Placed"
-msgstr ""
+msgstr "Inviato"
#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr "Reso"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "Spedito"
@@ -331,107 +341,107 @@ msgstr "OK"
#: InvenTree/status_codes.py:187
msgid "Attention needed"
-msgstr ""
+msgstr "Attenzione necessaria"
#: InvenTree/status_codes.py:188
msgid "Damaged"
-msgstr ""
+msgstr "Danneggiato"
#: InvenTree/status_codes.py:189
msgid "Destroyed"
-msgstr ""
+msgstr "Distrutto"
#: InvenTree/status_codes.py:191
msgid "Rejected"
-msgstr ""
+msgstr "Respinto"
#: InvenTree/status_codes.py:272
msgid "Legacy stock tracking entry"
-msgstr ""
+msgstr "Voce di tracciamento stock preesistente"
#: InvenTree/status_codes.py:274
msgid "Stock item created"
-msgstr ""
+msgstr "Elemento stock creato"
#: InvenTree/status_codes.py:276
msgid "Edited stock item"
-msgstr ""
+msgstr "Elemento stock modificato"
#: InvenTree/status_codes.py:277
msgid "Assigned serial number"
-msgstr ""
+msgstr "Numero di serie assegnato"
#: InvenTree/status_codes.py:279
msgid "Stock counted"
-msgstr ""
+msgstr "Stock contato"
#: InvenTree/status_codes.py:280
msgid "Stock manually added"
-msgstr ""
+msgstr "Stock aggiunto manualmente"
#: InvenTree/status_codes.py:281
msgid "Stock manually removed"
-msgstr ""
+msgstr "Stock rimosso manualmente"
#: InvenTree/status_codes.py:283
msgid "Location changed"
-msgstr ""
+msgstr "Posizione cambiata"
#: InvenTree/status_codes.py:285
msgid "Installed into assembly"
-msgstr ""
+msgstr "Installato nell'assemblaggio"
#: InvenTree/status_codes.py:286
msgid "Removed from assembly"
-msgstr ""
+msgstr "Rimosso dall'assemblaggio"
#: InvenTree/status_codes.py:288
msgid "Installed component item"
-msgstr ""
+msgstr "Componente installato"
#: InvenTree/status_codes.py:289
msgid "Removed component item"
-msgstr ""
+msgstr "Elemento componente rimosso"
#: InvenTree/status_codes.py:291
msgid "Split from parent item"
-msgstr ""
+msgstr "Diviso dall'elemento genitore"
#: InvenTree/status_codes.py:292
msgid "Split child item"
-msgstr ""
+msgstr "Dividi elemento figlio"
#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
msgid "Sent to customer"
-msgstr ""
+msgstr "Inviato al cliente"
#: InvenTree/status_codes.py:295
msgid "Returned from customer"
-msgstr ""
+msgstr "Restituito dal cliente"
#: InvenTree/status_codes.py:297
msgid "Build order output created"
-msgstr ""
+msgstr "Genera l'output dell'ordine creato"
#: InvenTree/status_codes.py:298
msgid "Build order output completed"
-msgstr ""
+msgstr "Build order output completato"
#: InvenTree/status_codes.py:300
msgid "Received against purchase order"
-msgstr ""
+msgstr "Ricevuto contro l'ordine di acquisto"
#: InvenTree/status_codes.py:315
msgid "Production"
-msgstr ""
+msgstr "Produzione"
#: InvenTree/validators.py:22
msgid "Not a valid currency code"
-msgstr ""
+msgstr "Non è un codice valuta valido"
#: InvenTree/validators.py:50
msgid "Invalid character in part name"
-msgstr ""
+msgstr "Carattere non valido nel nome del file"
#: InvenTree/validators.py:63
#, python-brace-format
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr "Quantità"
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index 60ece0791e..e8eaefdd41 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -33,48 +33,61 @@ msgstr "一致するアクションが見つかりませんでした"
msgid "Enter date"
msgstr "日付を入力する"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "確認"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "削除の確認"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr "削除の確認"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "パスワードを入力してください"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "新しいパスワードを入力してください。"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "パスワードの確認"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "新しいパスワードの確認"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "カテゴリの選択"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
@@ -102,7 +115,7 @@ msgstr "シリアル番号が見つかりません"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "添付ファイル"
@@ -118,10 +131,10 @@ msgstr "コメント:"
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "ユーザー"
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "説明"
@@ -200,7 +210,7 @@ msgstr "説明 (オプション)"
msgid "parent"
msgstr "親"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
@@ -208,75 +218,75 @@ msgstr "有効な数字でなければなりません"
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr ""
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr "返品済"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "発送済み"
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr ""
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "完了したパーツの場所"
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr "パーツ"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr "パーツを割り当てるためにビルドする"
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr "注文必須パーツ"
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr "パーツの注文"
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr "テンプレート"
@@ -1731,9 +1700,9 @@ msgstr "テンプレート"
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr "アセンブリ"
@@ -1741,8 +1710,8 @@ msgstr "アセンブリ"
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr "コンポーネント"
@@ -1750,7 +1719,7 @@ msgstr "コンポーネント"
msgid "Parts can be used as sub-components by default"
msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr "購入可能"
@@ -1758,8 +1727,8 @@ msgstr "購入可能"
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr "パーツはデフォルトで販売可能です"
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr "追跡可能"
@@ -1777,7 +1746,7 @@ msgstr "追跡可能"
msgid "Parts are trackable by default"
msgstr "パーツはデフォルトで追跡可能です"
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr "メーカー・パーツ"
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr "サプライヤー・パーツ"
@@ -2597,7 +2638,7 @@ msgstr "パーツを削除"
msgid "Delete Parts"
msgstr "パーツを削除"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr "メーカー・パーツ"
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr "パーツの注文"
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr "メーカー・パーツの編集"
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr "メーカー・パーツを削除"
@@ -2718,7 +2759,7 @@ msgstr "内部パーツ"
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr "メーカー・パーツの在庫"
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr "パーツ"
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "パーツ"
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr "新規パーツ"
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr "メーカー・パーツの編集"
msgid "Delete Manufacturer Part"
msgstr "メーカー・パーツを削除"
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index c0b31fe815..e1b5611439 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -33,48 +33,61 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr ""
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -102,7 +115,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr ""
@@ -118,10 +131,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr ""
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr ""
@@ -200,7 +210,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -208,75 +218,75 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr ""
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr ""
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr ""
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr ""
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr ""
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr ""
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 8a14f3628d..78a85dfaa1 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -33,48 +33,61 @@ msgstr "Geen overeenkomende actie gevonden"
msgid "Enter date"
msgstr "Voer datum in"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Bevestigen"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "Bevestigen verwijdering"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr "Bevestig item verwijdering"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "Voer wachtwoord in"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "Voer een nieuw wachtwoord in"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "Wachtwoord bevestigen"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "Nieuw wachtwoord bevestigen"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "Categorie selecteren"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dubbel serienummer: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveeldheid ingevoerd"
@@ -102,7 +115,7 @@ msgstr "Geen serienummers gevonden"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Aantal unieke serienummer ({s}) moet overeenkomen met de hoeveelheid ({q})"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "Bijlage"
@@ -118,10 +131,10 @@ msgstr "Opmerking"
msgid "File comment"
msgstr "Bijlage opmerking"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "Gebruiker"
@@ -158,37 +171,34 @@ msgstr "Fout bij hernoemen bestand"
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "Naam"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "Omschrijving"
@@ -200,7 +210,7 @@ msgstr "Omschrijving (optioneel)"
msgid "parent"
msgstr "overkoepelend"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
@@ -208,75 +218,75 @@ msgstr "Moet een geldig nummer zijn"
msgid "Filename"
msgstr "Bestandsnaam"
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr "Chinees"
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr "Retour"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "Verzonden"
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr "Verwijder item"
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr "Selectievakje aanvinken om de verwijdering van items te bevestigen"
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr "Gebruikersgegevens bewerken"
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr "Wachtwoord instellen"
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr "Wachtwoordvelden komen niet overeen"
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr "Systeeminformatie"
@@ -525,6 +535,10 @@ msgstr "Barcode komt al overeen met StockItem object"
msgid "Barcode associated with StockItem"
msgstr "Barcode gekoppeld aan StockItem"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Bouwopdracht referentie"
@@ -536,33 +550,28 @@ msgstr "Order streefdatum"
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr "Streefdatum"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr "Aantal"
@@ -589,7 +600,7 @@ msgstr "Aantal items om te maken"
msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor build-output"
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr "Serienummers"
@@ -609,246 +620,238 @@ msgstr "Bevestig verwijdering van build-output"
msgid "Confirm unallocation of stock"
msgstr "Bevestig het ongedaan maken van de toewijzing van voorraad"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Bevestig de voorraadtoewijzing"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Markeer build als voltooid"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr "Locatie"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Locatie van voltooide onderdelen"
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr "Status"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Build output voorraad status"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Bevestig onvolledigheid"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Bevestig voltooiing met onvolledige voorraadtoewijzing"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Bevestig build voltooiing"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Annuleren bevestigen"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Bevestig annulering van de build"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Selecteer de te toewijzen hoeveelheid voorraad"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr "Ongeldige keuze voor bovenliggende build"
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr "Bouwopdracht"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr "Bouwopdrachten"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Bouwopdracht referentie"
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr "Referentie"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "Korte beschrijving van de build"
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Bovenliggende bouw"
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr "BuildOrder waaraan deze build is toegewezen"
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr "Onderdeel"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Selecteer onderdeel om te bouwen"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "Verkoop Order Referentie"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "Verkooporder waaraan deze build is toegewezen"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr "Bron Locatie"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Selecteer de locatie waar de voorraad van de build vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)"
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "Bestemmings Locatie"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Bouwkwaliteit"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Voltooide voorraadartikelen"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Aantal voorraadartikelen die zijn voltooid"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Bouwstatus"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Bouwstatuscode"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr "Aanmaakdatum"
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "Verwachte voltooiingsdatum"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr "Voltooiingsdatum"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "voltooid door"
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "Gebruiker die bouwopdracht heeft gegeven"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr "Verantwoordelijke"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht"
msgid "External Link"
msgstr "Externe Link"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Link naar externe URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr "Opmerkingen"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Opmerkingen over de bouw"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "Geen bouwuitvoer opgegeven"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "Bouwuitvoer is al voltooid"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr "Bouwuitvoer komt niet overeen met bouwopdracht"
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
-msgstr "Geselecteerde voorraadartikel niet gevonden in stuklijst voor onderdeel '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
+msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr "Product"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr "Bouw om onderdelen toe te wijzen"
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr "Voorraadartikel"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "Bron voorraadartikel"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr "Voorraad hoeveelheid te alloceren aan bouw"
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr "Installeren in"
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr "Bestemming voorraadartikel"
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr "Serienummer"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr "Automatisch voorraad toewijzen"
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr "De volgende voorraadartikelen zullen worden toegewezen aan het opgegeven product"
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr "Geen voorraadartikelen gevonden die automatisch aan dit product toegewezen kunnen worden"
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr "Voorraad items zullen handmatig moeten worden toegewezen"
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr "Beheerder weergave"
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr "Achterstallig"
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr "Voortgang"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr "Verkoop Order"
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr "Voorraadbron"
@@ -1201,9 +1199,8 @@ msgstr "Voorraadbron"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr "Batch"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr "Gecreëerd"
@@ -1230,7 +1227,8 @@ msgstr "Gecreëerd"
msgid "No target date set"
msgstr "Geen doeldatum ingesteld"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr "Automatisch toewijzen"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
+msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr "Niet toegewezen voorraad"
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "Niet toegewezen voorraad"
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr "Bestel onderdelen"
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr "Bijlagen"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Bouw notities"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr "Bouw notities"
msgid "Edit Notes"
msgstr "Notities Bewerken"
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
@@ -1625,7 +1594,7 @@ msgstr "Gebruik de instantie naam"
msgid "Use the instance name in the title-bar"
msgstr "Gebruik de naam van de instantie in de titelbalk"
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Bedrijfsnaam"
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr "Interne prijzen"
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr "Foutopsporingsmodus"
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr "Paginagrootte"
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr "Testrapport"
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr "Verlopen voorraad"
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr "Verlopen voorraad functionaliteit inschakelen"
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr "Verkoop verlopen voorraad"
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr "Verkoop verlopen voorraad toestaan"
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr "dagen"
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr "Nieuwe locatie"
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-msgid "Create new stock location"
-msgstr "Maak nieuwe voorraadlocatie"
-
#: order/templates/order/order_cancel.html:8
msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr "Standaard locatie"
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr "Standaard locatie voor onderdelen in deze categorie"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr "Geen Locatie ingesteld"
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlo
msgid "All stock items"
msgstr "Alle voorraadartikelen"
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr "Maak nieuwe voorraadlocatie"
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr "Sublocaties"
msgid "Stock Details"
msgstr "Voorraadgegevens"
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr "Voorraadlocaties"
@@ -6071,6 +5921,10 @@ msgstr "Afdrukacties"
msgid "Print labels"
msgstr "Labels afdrukken"
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr "Nieuwe locatie"
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr "Maak nieuwe locatie"
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr "Bewerk voorraadlocatie"
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr "QR-code voor voorraadlocatie"
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr "Specificeer een geldige locatie"
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr "Maak nieuwe voorraadlocatie"
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr "Verwijder voorraadlocatie"
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr "Geen voorraadlocatie ingesteld"
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr "Bevestig de voorraadtoewijzing"
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr "Geen voorraadlocatie ingesteld"
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr "Inkoop"
msgid "Sell"
msgstr "Verkoop"
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 391caec1d4..4d8661bf32 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:28\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -33,48 +33,61 @@ msgstr "Ingen samsvarende handling funnet"
msgid "Enter date"
msgstr "Oppgi dato"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Bekreft"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "Bekreft sletting"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "Oppgi passord"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "Oppgi nytt passord"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "Bekreft passord"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "Bekreft nytt passord"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "Velg kategori"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dupliser serie: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
@@ -102,7 +115,7 @@ msgstr "Ingen serienummer funnet"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Antall unike serienummer ({s}) må samsvare mengde ({q})"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "Vedlegg"
@@ -118,10 +131,10 @@ msgstr "Kommenter"
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "Bruker"
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "Beskrivelse"
@@ -200,7 +210,7 @@ msgstr "Beskrivelse (valgfritt)"
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
@@ -208,75 +218,75 @@ msgstr "Nummer må være gyldig"
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr "Kinesisk"
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr ""
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr ""
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index 820073e7f7..e76b836ff9 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -33,48 +33,61 @@ msgstr "Nie znaleziono pasującej akcji"
msgid "Enter date"
msgstr "Wprowadź dane"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Potwierdź"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "Potwierdź usunięcie"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr "Potwierdź usuwanie elementu"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "Wprowadź hasło"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "Wprowadź nowe hasło"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "Potwierdź hasło"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "Potwierdź nowe hasło"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "Wybierz kategorię"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Powtórzony numer seryjny: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
@@ -102,7 +115,7 @@ msgstr "Nie znaleziono numerów seryjnych"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "Załącznik"
@@ -118,10 +131,10 @@ msgstr "Komentarz"
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "Użytkownik"
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "Opis"
@@ -200,7 +210,7 @@ msgstr "Opis (opcjonalny)"
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
@@ -208,75 +218,75 @@ msgstr "Numer musi być prawidłowy"
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr "Chiński"
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr "Zwrócone"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "Wysłane"
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr "Usuń element"
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr "Zaznacz pole aby potwierdzić usunięcie elementu"
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr "Edytuj informacje użytkownika"
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr "Ustaw hasło"
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr "Hasła muszą być zgodne"
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr "Informacja systemowa"
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Numer Zlecenia Budowy"
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr "Data docelowa"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr "Ilość"
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr "Numer seryjny"
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr "Potwierdź brak alokacji zapasów"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Potwierdź przydział zapasów"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Oznacz budowę jako ukończoną"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr "Lokalizacja"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Lokalizacja ukończonych części"
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr "Status"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Potwierdź nieukończone"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Na pewno anulować?"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Wybierz ilość zapasów do rezerwacji"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr "Zlecenia budowy"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr "Referencja"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "Krótki opis budowy"
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr "Część"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Wybierz część do budowy"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "Odwołanie do zamówienia sprzedaży"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr "Lokalizacja źródła"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)"
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "Lokalizacja docelowa"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Ilość do stworzenia"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "Ilość przedmiotów do zbudowania"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Ukończone elementy"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Ilość produktów magazynowych które zostały ukończone"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Status budowania"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr "Data zakończenia"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "zrealizowane przez"
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr "Wydany przez"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr "Odpowiedzialny"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr "Uwagi"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Dodatkowe notatki do budowy"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
-msgstr "Przydzielona ilość ({n}) nie może przekraczać dostępnej ilości ({q})"
-
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
+msgstr ""
+
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr "Budowa"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr "Ilość musi być większa niż zero"
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr "Numer Seryjny"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr "Przydziel automatycznie zapasy"
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr "Widok administratora"
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr "Zaległe"
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr "Postęp"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr "Zamówienie zakupu"
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr "Brak zapasów dla %(part)s"
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr "Czy na pewno chcesz anulować przydział tego zapasu?"
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr "Źródło magazynu"
@@ -1201,9 +1199,8 @@ msgstr "Źródło magazynu"
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr "Przeznaczenie"
@@ -1213,7 +1210,7 @@ msgstr "Nie określono lokalizacji docelowej"
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr "Partia"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr "Utworzony"
@@ -1230,7 +1227,8 @@ msgstr "Utworzony"
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr "Zakończone"
@@ -1250,15 +1248,16 @@ msgstr "Przydziel zapasy do budowy"
msgid "Allocate stock to build"
msgstr "Przydziel zapasy do budowy"
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr "Automatyczne przypisywanie"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
+msgstr "Przydziel zapasy"
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr "Cofnij przydział zapasów"
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "Cofnij przydział zapasów"
@@ -1268,7 +1267,7 @@ msgstr "Zamów wymagane komponenty"
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr "Zamów części"
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr "Utwórz nowe wyjście"
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr "Załączniki"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Notatki tworzenia"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr "Notatki tworzenia"
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr "Dodaj załącznik"
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr "Edytuj załącznik"
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr "Usuń załącznik"
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr "Szczegóły zlecenia budowy"
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr "Szczegóły"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr "Przydziel zapasy"
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr "Tworzenie zostało przerwane"
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr "Utwórz zlecenie budowy"
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr "Dostępne"
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Nazwa firmy"
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr "Szablon"
@@ -1731,9 +1700,9 @@ msgstr "Szablon"
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr "Złożenie"
@@ -1741,8 +1710,8 @@ msgstr "Złożenie"
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr "Komponent"
@@ -1750,7 +1719,7 @@ msgstr "Komponent"
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr "Możliwość zakupu"
@@ -1758,8 +1727,8 @@ msgstr "Możliwość zakupu"
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr "Możliwość sprzedaży"
@@ -1767,9 +1736,9 @@ msgstr "Możliwość sprzedaży"
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr "Możliwość śledzenia"
@@ -1777,7 +1746,7 @@ msgstr "Możliwość śledzenia"
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr "Wirtualny"
msgid "Parts are virtual by default"
msgstr "Części są domyślnie wirtualne"
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr "Pokaż ilość w formularzach"
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr "Tryb Debugowania"
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr "Rozmiar strony"
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr "Raporty testów"
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr "Włącz generowanie raportów testów"
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr "dni"
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr "Grupuj według komponentu"
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr "Pokaż ilość w formularzach"
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr "Cena"
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr "Domyślny"
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr "Wyślij plik"
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr "URL"
msgid "Image URL"
msgstr "URL zdjęcia"
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr "Opis firmy"
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr "Opis firmy"
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr "Strona WWW"
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr "Witryna internetowa firmy"
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr "Adres"
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr "Adres firmy"
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr "Numer telefonu"
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr "Numer telefonu kontaktowego"
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr "Adres E-Mail"
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr "Kontaktowy adres e-mail"
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr "Kontakt"
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr "Punkt kontaktowy"
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr "Łącze"
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr "Obraz"
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr "jest klientem"
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr "Czy sprzedajesz produkty tej firmie?"
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr "jest dostawcą"
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr "Czy kupujesz przedmioty od tej firmy?"
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr "jest producentem"
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr "Waluta"
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr "Część bazowa"
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr "Wybierz część"
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr "Producent"
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr "Wybierz producenta"
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr "MPN"
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr "Numer producenta"
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr "Część producenta"
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr "Jednostki"
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr "Dostawca"
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr "SKU"
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr "Opakowanie"
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr "wielokrotność"
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr "Firma"
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr "Telefon"
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr "Klient"
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr "Komponenty dostawcy"
@@ -2597,7 +2638,7 @@ msgstr "Usuń części"
msgid "Delete Parts"
msgstr "Usuń części"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr "Części producenta"
@@ -2620,9 +2661,9 @@ msgstr "Zapasy dostawcy"
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr "Zamów część"
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr "Edytuj część producenta"
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr "Usuń cześć producenta"
@@ -2718,7 +2759,7 @@ msgstr "Część wewnętrzna"
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr "Dostawcy"
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr "Usuń"
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr "Dodaj parametr"
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr "Stan"
@@ -2815,7 +2855,7 @@ msgstr "Dostarczone części"
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr "Nowy dostawca"
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr "Producenci"
@@ -2908,7 +2948,7 @@ msgstr "Producenci"
msgid "New Manufacturer"
msgstr "Now producent"
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr "Klienci"
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr "Złóż zamówienie"
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr "Oznacz zamówienie jako zakończone"
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr "Anuluj zamówienie"
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr "Wyślij zamówienie"
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr "Wprowadź ilość produktów magazynowych"
@@ -3064,11 +3100,11 @@ msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
msgid "Order notes"
msgstr "Notatki do zamówienia"
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr "Odniesienie zamówienia"
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr "Status zamówienia zakupu"
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr "Ilość musi być większa niż zero"
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr "Wartość musi być liczbą całkowitą"
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr "Wartość musi być liczbą dodatnią"
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr "Zamówienie"
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Gdzie kupujący chce przechowywać ten przedmiot?"
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr "Linia"
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr "Komponent"
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr "Jesteś pewien, że chcesz usunąć ten załącznik?"
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr "Eksportuj zamówienie do pliku"
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr "Eksportuj zamówienie do pliku"
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr "Szczegóły zamówienia"
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr "Numer zamówienia"
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr "Status zamówienia"
@@ -3344,16 +3381,6 @@ msgstr "Wydany"
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr "Nowa lokalizacja"
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr "Przedmioty"
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr "Otrzymane elementy"
@@ -3540,14 +3568,22 @@ msgstr "Otrzymane elementy"
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr "Dodaj element zamówienia"
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr "Notatki zamówień"
@@ -3557,67 +3593,24 @@ msgstr "Notatki zamówień"
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr "Części"
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr "Kod zamówienia"
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr "Odbierz"
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr "Usuń linie"
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr "Akcje"
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr "Numer ID"
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr "Cena jednostkowa"
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr "Przydzielono"
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr "Cena zakupu"
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr "Oblicz cenę"
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-msgstr "Zaktualizuj cenę jednostkową"
-
#: 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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr "Anuluj zamówienie"
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr "Potwierdź anulowanie zamówienia"
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr "Zamówienie nie może zostać anulowane"
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr "Wyślij zamówienie"
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr "Otrzymane przedmioty"
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr "Błąd konwersji ilości na liczbę"
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr "Edytuj zarezerwowaną ilość"
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr "Nie znaleziono ceny"
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "Części"
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr "Domyślna lokalizacja"
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr "Część nadrzędna"
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr "Domyślne słowa kluczowe"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr "Nazwa części"
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr "Wariant"
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr "Opis części"
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr "IPN"
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr "Wersja"
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr "Czy ta część może być zbudowana z innych części?"
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr "Czy ta część może być użyta do budowy innych części?"
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr "Aktywny"
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr "Dane"
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr "Eksportuj"
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr "Nowy komponent"
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr "Duplikuj część"
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr "Część jest wirtualna (nie fizyczna)"
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr "Nieaktywny"
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr "Ostatni numer seryjny"
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr "Edytuj kategorię części"
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr "Wynik"
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr "Data"
@@ -5422,51 +5294,9 @@ msgstr "Zaliczone"
msgid "Fail"
msgstr "Niezaliczone"
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr "Nieprawidłowa ilość"
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr "Ilość musi być większa niż zero"
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr "Data ważności"
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr "Lokacje nie są ustawione"
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr "Ostatnia aktualizacja"
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr "Drukuj etykiety"
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr "Nowa lokalizacja"
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr "Utwórz nową lokalizację magazynową"
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr "Ilość nie może być ujemna"
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
-msgstr "Adres e-mail"
-
#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+msgid "E-Mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr "Błąd 403: Odmowa dostępu"
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr "Nie masz uprawnień wymaganych do dostępu do tej funkcji"
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr "Dostępne"
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr "Akcje"
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr "Ilość za"
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr "Przydzielono"
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr "Potwierdź przydział zapasów"
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr "Dodaj nowy filtr"
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr "Kod zamówienia"
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr "Odbierz"
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr "Cena jednostkowa"
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr "Cena zakupu"
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr "Oblicz cenę"
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr "Zaktualizuj cenę jednostkową"
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr "Kopiuj BOM"
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr "Dodaj"
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr "Dodano"
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr "Wprowadź swój adres e-mail poniżej."
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr "Uprawnienia"
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr "Uprawnienia nadane"
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr "Uprawnienie do wyświetlania przedmiotów"
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr "Uprawnienie do dodawania przedmiotów"
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr "Uprawnienie do edycji przedmiotów"
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 82a406afcd..0cb5a878d6 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -33,48 +33,61 @@ msgstr "Соответствующее действие не найдено"
msgid "Enter date"
msgstr "Введите дату"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Подтвердить"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "Подтвердите удаление"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr "Подтвердите удаление элемента"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "Введите пароль"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "Введите новый пароль"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "Подтвердить пароль"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "Подтвердите новый пароль"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "Выбрать категорию"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Дублировать серийный номер: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
@@ -102,7 +115,7 @@ msgstr "Серийных номеров не найдено"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "Вложения"
@@ -118,10 +131,10 @@ msgstr "Комментарий"
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "Пользователь"
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "Описание"
@@ -200,7 +210,7 @@ msgstr "Описание (необязательно)"
msgid "parent"
msgstr "родитель"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -208,75 +218,75 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr "Китайский"
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr "Возвращено"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "Доставлено"
@@ -461,27 +471,27 @@ msgstr "Перегрузка не может превысить 100%"
msgid "Overage must be an integer value or a percentage"
msgstr "Превышение должно быть целым числом или процентом"
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr "Удалить элемент"
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr "Установите флажок для подтверждения удаления элемента"
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr "Редактировать информацию о пользователе"
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr "Установить пароль"
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr "Пароли должны совпадать"
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr "Информация о системе"
@@ -525,6 +535,10 @@ msgstr "Хэш штрих-кода уже соответствует объек
msgid "Barcode associated with StockItem"
msgstr "Штрих-код, связанный с инвентарем"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Ссылка на заказ"
@@ -536,33 +550,28 @@ msgstr "Срок выполнения заказа"
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr "Целевая дата"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr "Целевая дата для сборки. Сборка будет п
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr "Количество"
@@ -589,7 +600,7 @@ msgstr "Количество элементов для сборки"
msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr "Серийные номера"
@@ -609,246 +620,238 @@ msgstr "Подтвердите удаление результатов сбор
msgid "Confirm unallocation of stock"
msgstr "Подтвердите снятие со склада"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Подтвердите выделение запасов"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Пометить сборку как завершенную"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr "Расположение"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Расположение укомплектованных частей"
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr "Статус"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Создать статус склада вывода"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Подтвердите незавершенность"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Подтвердите завершение с неполным выделением запасов"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Подтвердите завершение сборки"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "Подтвердите отмену"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Подтвердите отмену сборки"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Выберите количество запасов для распределения"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr "Порядок сборки"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr "Порядок сборки"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr "Детали"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "выполнено"
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr "Ответственный"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr "Заметки"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr "Сборка"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr "Просрочено"
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr "Партия"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr "Создано"
@@ -1230,7 +1227,8 @@ msgstr "Создано"
msgid "No target date set"
msgstr "Нет конечной даты"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr "Заказать детали"
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr "Приложения"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Заметки сборки"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr "Заметки сборки"
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr "Подтвердите выделение запасов"
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index 3eb53ff69c..e93e9ae7e4 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:28\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -19,53 +19,66 @@ msgstr ""
#: InvenTree/api.py:64
msgid "API endpoint not found"
-msgstr ""
+msgstr "API-slutpunkt hittades inte"
#: InvenTree/api.py:110
msgid "No action specified"
-msgstr ""
+msgstr "Ingen åtgärd specificerad"
#: InvenTree/api.py:124
msgid "No matching action found"
-msgstr ""
+msgstr "Ingen matchande åtgärd hittades"
#: InvenTree/fields.py:100
msgid "Enter date"
-msgstr ""
+msgstr "Ange datum"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
-msgstr ""
+msgstr "Bekräfta"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
-msgstr ""
+msgstr "Bekräfta borttagning"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
-msgstr ""
+msgstr "Bekräfta borttagning av artikel"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
-msgstr ""
+msgstr "Ange lösenord"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
-msgstr ""
+msgstr "Ange nytt lösenord"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
-msgstr ""
+msgstr "Bekräfta lösenord"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
+msgstr "Bekräfta nytt lösenord"
+
+#: InvenTree/forms.py:205
+msgid "Select Category"
+msgstr "Välj Kategori"
+
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
msgstr ""
-#: InvenTree/forms.py:201
-msgid "Select Category"
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
msgstr ""
#: InvenTree/helpers.py:401
@@ -73,20 +86,20 @@ msgstr ""
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
-msgstr ""
+msgstr "Ogiltigt antal angivet"
#: InvenTree/helpers.py:411
msgid "Empty serial number string"
-msgstr ""
+msgstr "Tom serienummersträng"
#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
#: InvenTree/helpers.py:464
#, python-brace-format
msgid "Invalid group: {g}"
-msgstr ""
+msgstr "Ogiltig grupp: {g}"
#: InvenTree/helpers.py:469
#, python-brace-format
@@ -95,239 +108,236 @@ msgstr ""
#: InvenTree/helpers.py:477
msgid "No serial numbers found"
-msgstr ""
+msgstr "Inga serienummer hittades"
#: InvenTree/helpers.py:481
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
-msgstr ""
+msgstr "Bilaga"
#: InvenTree/models.py:67
msgid "Select file to attach"
-msgstr ""
+msgstr "Välj fil att bifoga"
#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
msgid "Comment"
-msgstr ""
+msgstr "Kommentar"
#: InvenTree/models.py:69
msgid "File comment"
-msgstr ""
+msgstr "Fil kommentar"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
-msgstr ""
+msgstr "Användare"
#: InvenTree/models.py:79
msgid "upload date"
-msgstr ""
+msgstr "uppladdningsdatum"
#: InvenTree/models.py:99
msgid "Filename must not be empty"
-msgstr ""
+msgstr "Filnamnet får inte vara tomt"
#: InvenTree/models.py:122
msgid "Invalid attachment directory"
-msgstr ""
+msgstr "Ogiltig katalog för bilaga"
#: InvenTree/models.py:132
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
-msgstr ""
+msgstr "Filnamnet innehåller ogiltiga tecken '{c}'"
#: InvenTree/models.py:135
msgid "Filename missing extension"
-msgstr ""
+msgstr "Filnamn saknar ändelse"
#: InvenTree/models.py:142
msgid "Attachment with this filename already exists"
-msgstr ""
+msgstr "Det finns redan en bilaga med detta filnamn"
#: InvenTree/models.py:149
msgid "Error renaming file"
-msgstr ""
+msgstr "Fel vid namnbyte av fil"
#: InvenTree/models.py:184
msgid "Invalid choice"
-msgstr ""
+msgstr "Ogiltigt val"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
-msgstr ""
+msgstr "Namn"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
-msgstr ""
+msgstr "Beskrivning"
#: InvenTree/models.py:208
msgid "Description (optional)"
-msgstr ""
+msgstr "Beskrivning (valfritt)"
#: InvenTree/models.py:216
msgid "parent"
-msgstr ""
+msgstr "överordnad"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
-msgstr ""
+msgstr "Måste vara ett giltigt nummer"
#: InvenTree/serializers.py:244
msgid "Filename"
-msgstr ""
-
-#: InvenTree/settings.py:523
-msgid "German"
-msgstr ""
-
-#: InvenTree/settings.py:524
-msgid "Greek"
-msgstr ""
-
-#: InvenTree/settings.py:525
-msgid "English"
-msgstr ""
-
-#: InvenTree/settings.py:526
-msgid "Spanish"
-msgstr ""
-
-#: InvenTree/settings.py:527
-msgid "French"
-msgstr ""
-
-#: InvenTree/settings.py:528
-msgid "Hebrew"
-msgstr ""
+msgstr "Filnamn"
#: InvenTree/settings.py:529
-msgid "Italian"
-msgstr ""
+msgid "German"
+msgstr "Tyska"
#: InvenTree/settings.py:530
-msgid "Japanese"
-msgstr ""
+msgid "Greek"
+msgstr "Grekiska"
#: InvenTree/settings.py:531
-msgid "Korean"
-msgstr ""
+msgid "English"
+msgstr "Engelska"
#: InvenTree/settings.py:532
-msgid "Dutch"
-msgstr ""
+msgid "Spanish"
+msgstr "Spanska"
#: InvenTree/settings.py:533
-msgid "Norwegian"
-msgstr ""
+msgid "French"
+msgstr "Franska"
#: InvenTree/settings.py:534
-msgid "Polish"
-msgstr ""
+msgid "Hebrew"
+msgstr "Hebreiska"
#: InvenTree/settings.py:535
-msgid "Russian"
-msgstr ""
+msgid "Italian"
+msgstr "Italienska"
#: InvenTree/settings.py:536
-msgid "Swedish"
-msgstr ""
+msgid "Japanese"
+msgstr "Japanska"
#: InvenTree/settings.py:537
-msgid "Thai"
-msgstr ""
+msgid "Korean"
+msgstr "Koreanska"
#: InvenTree/settings.py:538
-msgid "Turkish"
-msgstr ""
+msgid "Dutch"
+msgstr "Nederländska"
#: InvenTree/settings.py:539
-msgid "Vietnamese"
-msgstr ""
+msgid "Norwegian"
+msgstr "Norska"
#: InvenTree/settings.py:540
+msgid "Polish"
+msgstr "Polska"
+
+#: InvenTree/settings.py:541
+msgid "Russian"
+msgstr "Ryska"
+
+#: InvenTree/settings.py:542
+msgid "Swedish"
+msgstr "Svenska"
+
+#: InvenTree/settings.py:543
+msgid "Thai"
+msgstr "Thailändska"
+
+#: InvenTree/settings.py:544
+msgid "Turkish"
+msgstr "Turkiska"
+
+#: InvenTree/settings.py:545
+msgid "Vietnamese"
+msgstr "Vietnamesiska"
+
+#: InvenTree/settings.py:546
msgid "Chinese"
-msgstr ""
+msgstr "Kinesiska"
#: InvenTree/status.py:94
msgid "Background worker check failed"
-msgstr ""
+msgstr "Kontroll av bakgrundsarbetare misslyckades"
#: InvenTree/status.py:98
msgid "Email backend not configured"
-msgstr ""
+msgstr "Backend för e-post är inte konfigurerad"
#: InvenTree/status.py:101
msgid "InvenTree system health checks failed"
-msgstr ""
+msgstr "InvenTree systemhälsokontroll misslyckades"
#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
#: InvenTree/status_codes.py:314
msgid "Pending"
-msgstr ""
+msgstr "Väntar"
#: InvenTree/status_codes.py:105
msgid "Placed"
-msgstr ""
+msgstr "Placerad"
#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
msgid "Complete"
-msgstr ""
+msgstr "Slutför"
#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
#: InvenTree/status_codes.py:316
msgid "Cancelled"
-msgstr ""
+msgstr "Avbruten"
#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
#: InvenTree/status_codes.py:190
msgid "Lost"
-msgstr ""
+msgstr "Förlorad"
#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
#: InvenTree/status_codes.py:192
msgid "Returned"
-msgstr ""
+msgstr "Återlämnad"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
-msgstr ""
+msgstr "Skickad"
#: InvenTree/status_codes.py:186
msgid "OK"
-msgstr ""
+msgstr "OK"
#: InvenTree/status_codes.py:187
msgid "Attention needed"
@@ -335,15 +345,15 @@ msgstr ""
#: InvenTree/status_codes.py:188
msgid "Damaged"
-msgstr ""
+msgstr "Skadad"
#: InvenTree/status_codes.py:189
msgid "Destroyed"
-msgstr ""
+msgstr "Förstörd"
#: InvenTree/status_codes.py:191
msgid "Rejected"
-msgstr ""
+msgstr "Avvisad"
#: InvenTree/status_codes.py:272
msgid "Legacy stock tracking entry"
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr ""
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 3be3993f7b..1f25b70e4e 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -33,48 +33,61 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr ""
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -102,7 +115,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr ""
@@ -118,10 +131,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr ""
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr ""
@@ -200,7 +210,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -208,75 +218,75 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr ""
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr ""
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr ""
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr ""
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr ""
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr ""
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
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 81567b4a83..587d5d5f33 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -33,48 +33,61 @@ msgstr "Eşleşen eylem bulunamadı"
msgid "Enter date"
msgstr "Tarih giriniz"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "Onay"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "Silmeyi Onayla"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr "Silmeyi onayla"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "Şifrenizi girin"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "Lütfen Yeni Parolayı Girin"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "Parolayı doğrulayın"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "Yeni parolayı doğrulayın"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "Kategori Seçin"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Tekrarlanan seri {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
@@ -102,7 +115,7 @@ msgstr "Seri numarası bulunamadı"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "Ek"
@@ -118,10 +131,10 @@ msgstr "Yorum"
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "Kullanıcı"
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "Açıklama"
@@ -200,7 +210,7 @@ msgstr "Açıklama (isteğe bağlı)"
msgid "parent"
msgstr "üst"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
@@ -208,75 +218,75 @@ msgstr "Geçerli bir numara olmalı"
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr "Çince"
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr "İade"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "Sevk edildi"
@@ -461,27 +471,27 @@ msgstr "Fazlalık %100'ü geçmemelidir"
msgid "Overage must be an integer value or a percentage"
msgstr "Fazlalık bir tamsayı veya yüzde olmalıdır"
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr "Ögeyi Sil"
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr "Öge silme işlemini onaylamak için kutuyu işaretleyin"
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr "Kullanıcı Bilgisini Düzenle"
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr "Şifre Belirle"
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr "Parola alanları eşleşmelidir"
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr "Sistem Bilgisi"
@@ -525,6 +535,10 @@ msgstr "Barkod karması (hash) zaten stok kalemi nesnesiyle eşleşiyor"
msgid "Barcode associated with StockItem"
msgstr "Barkod başka bir stok kalemiyle ilişkili"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "Yapım İşi Emri referansı"
@@ -536,33 +550,28 @@ msgstr "Emir hedef tarihi"
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr "Hedeflenen tarih"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
msgid "Target date for build completion. Build will be overdue after this date."
msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr "Miktar"
@@ -589,7 +600,7 @@ msgstr "Yapılacak öge sayısı"
msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr "Seri Numaraları"
@@ -609,246 +620,238 @@ msgstr "Yapım işi çıktısının silinmesini onaylayın"
msgid "Confirm unallocation of stock"
msgstr "Stok tahsisinin iptalini onayla"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "Stok tahsisini onayla"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "Yapım işini tamamlandı olarak işaretle"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr "Konum"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr "Tamamlanmış parçaların konumu"
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr "Durum"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "Yapım işi çıktısı stok durumu"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "Eksik olarak onayla"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "Eksik parça tahsisi ile tamamlamayı onayla"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "Yapım işinin tamamlandığını onaylayın"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "İptali Onayla"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Yapım işi iptalini onayla"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "Tahsis edilecek stok miktarını seçiniz"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr "Yapım İşi Emri"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr "Referans"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "Yapım işinin kısa açıklaması"
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr "Parça"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr "Yapım işi için parça seçin"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "Satış Emri Referansı"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr "Kaynak Konum"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)"
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "Hedef Konum"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "Yapım İşi Miktarı"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "Yapım işi stok kalemlerinin sayısı"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "Tamamlanmış ögeler"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "Tamamlanan stok kalemlerinin sayısı"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "Yapım İşi Durumu"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr "Tamamlama tarihi"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "tamamlayan"
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr "Veren"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr "Sorumlu"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr "Notlar"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "Yapım işi için ekstra notlar"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "Yapım işi çıktısı zaten tamamlanmış"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr "Yapım işi çıktısı, yapım işi emri ile eşleşmiyor"
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr "Yapım işi ögesi; yapım işi, stok kalemi ve kurulacak yer için benzersiz olmalıdır"
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr "Ana parça izlenebilir olarak işaretlendiğinden, yapım işi çıktısı için bir yapım işi ögesi belirtmelidir"
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
-msgstr "Tahsis edilecek miktar ({n}) mevcut miktarı ({q}) geçmemeli"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
+msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
-msgstr "{p} parçasının malzeme listesindeki seçili stok kalemi bulunamadı"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
+msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr "Yapım İşi"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr "Seri Numara"
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
-msgstr "Stoku Otomatik Olarak Tahsis Et"
-
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
-msgstr "Aşağıdaki stok kalemleri, belirtilen yapım işi çıktısı için tahsis edilecek"
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr "Bu yapım işi için otomatik tahsis edilecek stok kalemleri bulunamadı"
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr "Stok kalemleri manuel olarak tahsis edilecek"
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr "Yönetici görünümü"
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr "Vadesi geçmiş"
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr "İlerleme"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr "Sipariş Emri"
@@ -1171,28 +1191,6 @@ msgstr "takip edilebilir parçalar tamamen tahsis edilemedi"
msgid "The following items will be created"
msgstr "Aşağıdaki ögeler oluşturulacak"
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr "Seçili yapım işi emri için tahsis edilecek bir stok kalemi seçiniz"
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr "%(part)s için mevcut stok yok"
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr "Bu stokun tahsisinin iptal etmek istediğinizden emin misiniz?"
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr "Bu yapım işi için seçili stok tahsisi iptal edilecek"
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr "Stok Kaynağı"
@@ -1201,9 +1199,8 @@ msgstr "Stok Kaynağı"
msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr "Hedef"
@@ -1213,7 +1210,7 @@ msgstr "Hedef konumu belirtilmedi"
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr "Toplu"
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr "Oluşturuldu"
@@ -1230,7 +1227,8 @@ msgstr "Oluşturuldu"
msgid "No target date set"
msgstr "Hedef tarih ayarlanmadı"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr "Tamamlandı"
@@ -1250,15 +1248,16 @@ msgstr "Yapım İşi için Stok Tahsis Et"
msgid "Allocate stock to build"
msgstr "Yapım işi için stok tahsis et"
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr "Otomatik Tahsis Et"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
+msgstr "Stok Tahsis Et"
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr "Stok tahsisini kaldır"
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "Stok Tahsisini Kaldır"
@@ -1268,7 +1267,7 @@ msgstr "Gerekli parçaları sipariş edin"
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr "Parça Siparişi"
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edilemedi"
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Bu yapım işi emri, herhangi bir takip edilmeyen malzeme listesi öğesine sahip değil"
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr "Tamamlanmamış Yapım İşi Çıktıları"
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr "Yeni yapım işi çıktısı oluştur"
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr "Yeni Çıktı Oluştur"
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr "Yeni bir yapım işi çıktısı oluştur"
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr "Tamamlanmamış yapım işi çıktısı kalmadı."
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr "Yukarıdaki düğmeyi kullanarak yeni bir yapım işi çıktısı oluştur"
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr "Tamamlanmış Yapım İşi Çıktıları"
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr "Tamamlanmış Yapım İşi Çıktıları"
msgid "Attachments"
msgstr "Ekler"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr "Yapım İşi Notları"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr "Yapım İşi Notları"
msgid "Edit Notes"
msgstr "Notları Düzenle"
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr "Dosya Ekle"
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr "Ek Düzenle"
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr "Silme İşlemini Onayla"
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr "Eki Sil"
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr "Yapım işi çıktısına tahsis edilen stok miktarını değiştir"
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr "Yapım İşi Emri Detayları"
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr "Detaylar"
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr "Stok Tahsis Et"
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr "Yapım İşi Çıktıları"
@@ -1434,120 +1441,82 @@ msgstr "Tüm eksik stok tahsisleri yapım işinden kaldırılacak"
msgid "Build was cancelled"
msgstr "Yapım işi iptal edildi"
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr "Yapım işi çıktısına stok tahsis edildi"
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr "Yapım İşi Çıktısı Oluştur"
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr "Maksimum çıktı miktarı "
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr "Seri numaraları takip edilebilir yapım işi çıktıları için gerekli"
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr "Yapım İşi Çıktısı Sil"
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr "Yapım işi stoku tahsisinin iptalini onayla"
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr "Onay kutusunu işaretleyin"
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr "Yapım işi çıktısı yapım işi ile eşleşmiyor"
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr "Yapım işi çıktısı belirtilmeli"
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr "Yapım işi çıktısı silindi"
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr "Tamamlanmış Yapım İşi Emri"
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr "Yapım işi emri tamamlanamadı - eksik çıktılar kaldı"
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr "Tamamlanmış yapım işi emri"
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr "Tamamlanmış Yapım İşi Çıktısı"
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr "Geçersiz stok durum değeri seçildi"
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr "Tamamlanacak miktar yapım işi çıktı miktarını aşamaz"
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr "Eksik yapım işinin tamamlandığını onaylayın"
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr "Yapım işi çıktısı tamamlandı"
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr "Yapım İşi Emrini Sil"
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr "Yapım işinden tahsis edilen parçalar çıkarıldı"
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr "Yapım işi çıktısına stok tahsis edildi"
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr "Öge stokta bulunmalı"
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr "Stok kalemi fazladan tahsis edilmiş"
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr "Mevcut"
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr "Stok kalemi seçilmeli"
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr "Stok Tahsisini Düzenle"
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr "Yapım İşi Ögesini Güncelle"
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr "Desteklenmeyen dosya formatı: {ext.upper()}"
@@ -1585,7 +1554,7 @@ msgstr "{name.title()} Dosya"
msgid "Select {name} file to upload"
msgstr "{name} dosyasını yüklemek için seçin"
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Şirket adı"
@@ -1721,9 +1690,9 @@ msgstr "Kategori Paremetre Sablonu Kopyala"
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr "Şablon"
@@ -1731,9 +1700,9 @@ msgstr "Şablon"
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr "Montaj"
@@ -1741,8 +1710,8 @@ msgstr "Montaj"
msgid "Parts can be assembled from other components by default"
msgstr "Parçalar varsayılan olarak başka bileşenlerden monte edilebilir"
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr "Bileşen"
@@ -1750,7 +1719,7 @@ msgstr "Bileşen"
msgid "Parts can be used as sub-components by default"
msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir"
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr "Satın Alınabilir"
@@ -1758,8 +1727,8 @@ msgstr "Satın Alınabilir"
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr "Satılabilir"
@@ -1767,9 +1736,9 @@ msgstr "Satılabilir"
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr "Takip Edilebilir"
@@ -1777,7 +1746,7 @@ msgstr "Takip Edilebilir"
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr "Sanal"
msgid "Parts are virtual by default"
msgstr "Parçalar varsayılan olarak sanaldır"
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr "Formlarda Miktarı Göster"
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr "Formlarda Fiyat Göster"
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr "İlgili parçaları göster"
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr "Hata Ayıklama Modu"
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)"
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr "Sayfa Boyutu"
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr "PDF raporlar için varsayılan sayfa boyutu"
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr "Test Raporları"
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr "günler"
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin"
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr "Formlarda Miktarı Göster"
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr "Fiyat"
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr "Varsayılan"
@@ -2199,7 +2240,7 @@ msgstr "Kullanıcı Ayarlarını Değiştir"
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr "Dosya Yükle"
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr "Şirket web sitesi"
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr "Adres"
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr "Şirket adresi"
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr "Telefon numarası"
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr "İletişim telefon numarası"
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr "E-posta"
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr "İletişim e-posta adresi"
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr "İletişim"
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr "Bağlantı"
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr "Resim"
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr "müşteri mi"
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr "Bu şirkete ürün satıyor musunuz?"
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr "tedarikçi mi"
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr "Bu şirketten ürün satın alıyor musunuz?"
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr "üretici mi"
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr "Bu şirket üretim yapıyor mu?"
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr "Para birimi"
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr "Bu şirket için varsayılan para birimi"
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr "Temel Parça"
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr "Parça seçin"
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr "Üretici"
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr "Üretici seçin"
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr "ÜPN"
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr "Üretici Parça Numarası"
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr "Parametre adı"
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr "Değer"
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr "Parametre değeri"
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr "Tedarikçi"
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr "Tedarikçi seçin"
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr "SKU"
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Not"
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr "Paketleme"
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr "çoklu"
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr "Para Birimi Kodu"
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr "Satın Alma Emri Oluştur"
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr "Müşteri"
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr "Tedarikçi Parçaları"
@@ -2597,7 +2638,7 @@ msgstr "Parçaları sil"
msgid "Delete Parts"
msgstr "Parçaları Sil"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr "Tedarikçi Stoku"
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr "Satın Alma Emirleri"
@@ -2644,9 +2685,9 @@ msgstr "Yeni Satın Alma Emri"
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr "Satış Emirleri"
@@ -2664,7 +2705,7 @@ msgstr "Yeni Satış Emri"
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr "Atanan Stok"
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr "Parça siparişi"
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr "Tedarikçi parçalarını sil"
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr "Stok"
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr "Stok Kalemleri"
@@ -2823,17 +2863,17 @@ msgstr "Stok Kalemleri"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr "Tedarikçi parçasını düzenle"
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr "Tedarikçi parçasını sil"
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr "Yeni Tedarikçi"
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr "Üreticiler"
@@ -2908,7 +2948,7 @@ msgstr "Üreticiler"
msgid "New Manufacturer"
msgstr "Yeni Üretici"
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr "Müşteriler"
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr "Sipariş ver"
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr "Siparişi tamamlandı olarak işaretle"
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr "Siparişi iptal et"
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr "Stok kalemi seri numaları girin"
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr "Sipariş notları"
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr "Sipariş referansı"
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr "Stok kalemi fazladan tahsis edilmiş"
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr "Yazdır"
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr "Emiri dosya çıkar"
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr "Emiri dosya çıkar"
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr "Yeni Konum"
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-msgid "Create new stock location"
-msgstr "Yeni stok konumu oluştur"
-
#: order/templates/order/order_cancel.html:8
msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr "Ürünler"
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr "Sipariş Notları"
@@ -3557,67 +3593,24 @@ msgstr "Sipariş Notları"
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr "Parçalar"
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr "İşlemler"
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr "Stok tahsisini düzenle"
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr "Stok tahsisini sil"
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr "ID"
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr "Toplam fiyat"
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr "Seri numaralarını tahsis et"
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr "Seri numarası ile stok kalemlerini tahsis et"
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr "Bu işlem Sipariş Emrinden belirtilen stok kalemleri tahsis edemedi"
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr "Siparişi İptal Et"
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr "Fiyatları güncelle"
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr "Seri Numaralarını Tahsis Et"
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr "{serial} seri numarası için eşleşen öge bulunamadı"
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr "{serial} stokta yok"
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr "{serial} zaten bir emirde tahsis edilmiş"
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr "Tahsis Miktarını Düzenle"
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr "Tahsisi Sil"
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "Parçalar"
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr "Varsayılan Konum"
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil edin"
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr "Parametre şablonunu tüm kategorilere ekle"
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr "Bu kategori içindeki parçalar için varsayılan konum"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr "Parça Kategorileri"
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr "Sonraki kullanılabilir seri numaraları"
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr "Sonraki müsait seri numarası"
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr "En son seri numarası"
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr "Parça adı"
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr "Bu parça başka bir parçanın çeşidi mi?"
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr "Parça açıklaması"
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr "Anahtar kelimeler"
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr "DPN"
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr "Revizyon"
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr "Varsayılan Tedarikçi"
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr "Minimum Stok"
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?"
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr "Aktif"
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr "Bu parça aktif mi?"
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr "Oluşturan Kullanıcı"
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir"
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr "Bu malzeme listesi, çeşit parçalar listesini kalıtsalıdır"
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr "Çeşit parçaların stok kalemleri bu malzeme listesinde kullanılabilir"
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr "Pasif"
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr "Bu parça %(link)s parçasının bir çeşididir"
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr "Yapım İşi Emirleri için Gerekli"
@@ -4958,18 +4822,18 @@ msgstr "Satış Emirleri için Gerekli"
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr "Son Seri Numarası"
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr "Hesapla"
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr "Toplam Maliyet"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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 "Bu parçası için tanımlanmış %(count)s tedarikçi bulunmaktadır. Bu parçayı silerseniz, aşağıdaki tedarikçi parçaları da silinecektir:"
-#: part/templates/part/partial_delete.html:55
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr "Aşağıdaki parçalara kategori ayarla"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr "Stok Yok"
@@ -5262,7 +5134,7 @@ msgstr "Parça Parametre Şablonu Düzenle"
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr "{n} öge için stok güncellendi"
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr "Seri numaraları zaten mevcut: {exists}"
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr "Konum ayarlanmadı"
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr "Bu stok kaleminin süresi %(item.expiry_date)s tarihinde sona erecek"
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenleneme
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr "Yeni stok konumu oluştur"
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr "Alt konumlar"
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr "Stok Konumları"
@@ -6071,6 +5921,10 @@ msgstr "Yazdırma İşlemleri"
msgid "Print labels"
msgstr "Etiketleri yazdır"
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr "Yeni Konum"
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr "Yeni konum oluştur"
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr "Stok Kalemine Dönüştür"
@@ -6132,104 +5986,104 @@ msgstr "Bu işlem kolayca geri alınamaz"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr "Stok konumunu düzenle"
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)"
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr "Stok Konumu QR Kodu"
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr "Geçerli bir konum belirtiniz"
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr "Stok ayarlamasını onayla"
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr "Yeni Stok konumu oluştur"
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr "Stoku Seri Numarala"
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr "Stok Konumunu Sil"
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr "Stok konumu ayarlanmadı"
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr "Kategori parametre şablonu bulunamadı"
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr "Şablonu Düzenle"
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr "Şablonu Sil"
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr "Parça parametre şablonu bulunamadı"
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
-msgstr "E-Posta Adresi"
-
#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
msgid "Theme Settings"
msgstr "Tema Ayarları"
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr "Tema Seç"
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr "Dil Ayarları"
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr "Dili Ayarla"
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr "Ana Sayfa Ayarları"
@@ -6641,11 +6575,108 @@ msgstr "sürüm bilgisini kopyala"
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr "Kapat"
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr "Test Raporu Şablonu Seç"
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr "Seçili yapım işleri için rapor şablonu bulunamadı"
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Parçaları Seçin"
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr "Cevap Yok"
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz"
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr "Konuma Kaydet"
msgid "Barcode does not match a valid location"
msgstr "Barkod geçerli bir konumla eşleşmiyor"
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr "Mevcut"
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr "İşlemler"
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
+msgstr "Stok tahsisini düzenle"
+
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr "Stok tahsisini sil"
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr "Gerekli Parça"
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr "Stok tahsisini onayla"
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr "Şablon Parça"
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr "doğru"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr "yanlış"
@@ -7138,19 +7235,19 @@ msgstr "yanlış"
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr "Toplam fiyat"
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr "Seri numaralarını tahsis et"
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr "Çeşit bulunamadı"
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr "Stok konumu ayarlanmadı"
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr "konumlar"
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr "Tanımsız konum"
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr "Seri No"
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr "Konumları dahil et"
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr "Alt kategorilerdeki parçaları dahil et"
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr "DPN Var"
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr "Barkod İşlemleri"
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index 49924e132a..c8e6c91052 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:28\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -33,48 +33,61 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr ""
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr ""
@@ -102,7 +115,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr ""
@@ -118,10 +131,10 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr ""
@@ -158,37 +171,34 @@ msgstr ""
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr ""
@@ -200,7 +210,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr ""
@@ -208,75 +218,75 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr ""
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr ""
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr ""
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr ""
@@ -321,7 +331,7 @@ msgid "Returned"
msgstr ""
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr ""
@@ -461,27 +471,27 @@ msgstr ""
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr ""
@@ -525,6 +535,10 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr ""
@@ -536,33 +550,28 @@ msgstr ""
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr ""
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,14 +579,16 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
msgstr ""
@@ -589,7 +600,7 @@ msgstr ""
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr ""
@@ -609,246 +620,238 @@ msgstr ""
msgid "Confirm unallocation of stock"
msgstr ""
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
msgstr ""
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
msgstr ""
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr ""
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr ""
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr ""
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr ""
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr ""
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr ""
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1291
msgid "Destination stock item"
msgstr ""
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
+msgstr ""
+
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1033,10 +1053,10 @@ msgstr ""
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr ""
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr ""
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr ""
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr ""
@@ -1230,7 +1227,8 @@ msgstr ""
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
msgstr ""
@@ -1250,15 +1248,16 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
msgstr ""
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr ""
@@ -1268,7 +1267,7 @@ msgstr ""
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
msgstr ""
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1323,15 +1326,15 @@ msgstr ""
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
@@ -1339,39 +1342,48 @@ msgstr ""
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:400
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
+#: order/templates/order/purchase_order_detail.html:146
#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
msgid "Delete Attachment"
msgstr ""
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
#: build/templates/build/edit_build_item.html:7
msgid "Alter the quantity of stock allocated to the build output"
msgstr ""
@@ -1401,15 +1413,10 @@ msgid "Build Order Details"
msgstr ""
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
msgstr ""
@@ -1434,120 +1441,82 @@ msgstr ""
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
msgstr ""
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
msgstr ""
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
msgstr ""
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,7 +1594,7 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
@@ -1721,9 +1690,9 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
msgstr ""
@@ -1731,9 +1700,9 @@ msgstr ""
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
msgstr ""
@@ -1741,8 +1710,8 @@ msgstr ""
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
msgstr ""
@@ -1750,7 +1719,7 @@ msgstr ""
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
msgstr ""
@@ -1758,8 +1727,8 @@ msgstr ""
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
msgstr ""
@@ -1767,9 +1736,9 @@ msgstr ""
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
msgstr ""
@@ -1777,7 +1746,7 @@ msgstr ""
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
@@ -1787,392 +1756,464 @@ msgstr ""
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:652
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:653
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:659
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:660
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:671
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
msgstr ""
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
msgstr ""
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
msgstr ""
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
msgstr ""
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
msgstr ""
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
msgstr ""
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
msgstr ""
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
msgstr ""
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
msgstr ""
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
msgstr ""
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
msgstr ""
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
msgstr ""
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
msgstr ""
@@ -2199,7 +2240,7 @@ msgstr ""
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
@@ -2207,7 +2248,7 @@ msgid "Upload File"
msgstr ""
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
@@ -2246,249 +2287,249 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
@@ -2502,7 +2543,7 @@ msgstr ""
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
msgstr ""
@@ -2517,7 +2558,7 @@ msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
msgstr ""
@@ -2542,22 +2583,22 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
msgstr ""
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
msgstr ""
@@ -2597,7 +2638,7 @@ msgstr ""
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
msgstr ""
@@ -2620,9 +2661,9 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2644,9 +2685,9 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2664,7 +2705,7 @@ msgstr ""
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
@@ -2696,12 +2737,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
msgstr ""
@@ -2718,7 +2759,7 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
msgstr ""
@@ -2732,7 +2773,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
msgstr ""
@@ -2758,7 +2799,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
msgstr ""
@@ -2777,16 +2818,15 @@ msgstr ""
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
msgstr ""
@@ -2815,7 +2855,7 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
msgstr ""
@@ -2823,17 +2863,17 @@ msgstr ""
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
msgstr ""
@@ -2900,7 +2940,7 @@ msgid "New Supplier"
msgstr ""
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
msgstr ""
@@ -2908,7 +2948,7 @@ msgstr ""
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
msgstr ""
@@ -3011,36 +3051,32 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3064,11 +3100,11 @@ msgstr ""
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
@@ -3077,7 +3113,7 @@ msgid "Company from which the items are being ordered"
msgstr ""
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3426,6 +3453,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
msgstr ""
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3557,67 +3593,24 @@ msgstr ""
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,149 +3665,129 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
#: part/api.py:700
msgid "Must be greater than zero"
msgstr ""
@@ -3934,7 +3804,7 @@ msgstr ""
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
msgstr ""
@@ -3999,7 +3869,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:793
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4578,7 +4444,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
msgstr ""
@@ -4658,7 +4524,7 @@ msgstr ""
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
msgstr ""
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4874,9 +4732,9 @@ msgstr ""
msgid "Part is virtual (not a physical part)"
msgstr ""
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,18 +4822,18 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
msgstr ""
@@ -4977,16 +4841,16 @@ msgstr ""
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
msgstr ""
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5051,32 +4915,39 @@ msgstr ""
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5151,8 +5022,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5262,7 +5134,7 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
msgstr ""
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5910,7 +5756,7 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
msgstr ""
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6019,6 +5865,10 @@ msgstr ""
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr ""
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
@@ -6058,7 +5908,7 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
@@ -6071,6 +5921,10 @@ msgstr ""
msgid "Print labels"
msgstr ""
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr ""
+
#: stock/templates/stock/location.html:251
msgid "Create new location"
msgstr ""
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6313,14 +6167,6 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6365,6 +6211,14 @@ msgstr ""
msgid "Setting"
msgstr ""
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
@@ -6382,7 +6236,7 @@ msgstr ""
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
msgstr ""
@@ -6397,38 +6251,48 @@ msgstr ""
msgid "Reports"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
+msgid "Barcodes"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
msgstr ""
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
msgstr ""
@@ -6469,21 +6333,21 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
msgstr ""
@@ -6495,70 +6359,140 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:28
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:32
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:36
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:42
+msgid "E-Mail"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,7 +6706,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
msgstr ""
@@ -6707,8 +6738,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,115 +6943,181 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
@@ -7040,7 +7137,7 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
msgstr ""
@@ -7084,53 +7181,53 @@ msgstr ""
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
@@ -7138,19 +7235,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7247,7 +7348,7 @@ msgid "Cancel"
msgstr ""
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,31 +7373,31 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
@@ -7304,70 +7405,195 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
msgstr ""
@@ -7388,396 +7614,396 @@ msgstr ""
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:844
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7935,89 +8161,89 @@ msgstr ""
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8033,19 +8259,15 @@ msgstr ""
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8169,6 +8335,10 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
@@ -8249,35 +8419,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:190
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:193
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index f3febfab99..89b8b3fadc 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
-"PO-Revision-Date: 2021-09-12 13:44\n"
+"POT-Creation-Date: 2021-10-11 06:21+0000\n"
+"PO-Revision-Date: 2021-10-11 06:29\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -33,48 +33,61 @@ msgstr "未找到指定操作"
msgid "Enter date"
msgstr "输入日期"
-#: InvenTree/forms.py:111 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:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
+#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
+#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
+#: part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:564
msgid "Confirm"
msgstr "确认"
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:132
msgid "Confirm delete"
msgstr "确认删除"
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:133
msgid "Confirm item deletion"
msgstr "确认删除"
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:164
msgid "Enter password"
msgstr "输入密码"
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:165
msgid "Enter new password"
msgstr "输入新密码"
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:172
msgid "Confirm password"
msgstr "确认密码"
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:173
msgid "Confirm new password"
msgstr "确认新密码"
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:205
msgid "Select Category"
msgstr "选择分类"
+#: InvenTree/forms.py:226
+msgid "E-mail (again)"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "E-mail address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:250
+msgid "You must type the same email each time."
+msgstr ""
+
#: InvenTree/helpers.py:401
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "重复的序列号: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
+#: stock/views.py:1340
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
@@ -102,7 +115,7 @@ msgstr "未找到序列号"
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})"
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:66 stock/models.py:1823
msgid "Attachment"
msgstr "附件"
@@ -118,10 +131,10 @@ msgstr "注释"
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
+#: common/models.py:1056 part/models.py:2055
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:1669
msgid "User"
msgstr "用户"
@@ -158,37 +171,34 @@ msgstr "重命名文件出错"
msgid "Invalid choice"
msgstr "选择无效"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
+#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
+#: label/models.py:112 part/models.py:659 part/models.py:2216
#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
+#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
+#: templates/js/translated/stock.js:1462
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
+#: InvenTree/models.py:207 build/models.py:189
+#: build/templates/build/detail.html:24 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:76
#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
+#: order/models.py:158 part/models.py:682
#: part/templates/part/part_base.html:246
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
+#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
+#: templates/js/translated/company.js:547
+#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
+#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
+#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
+#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
+#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
+#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
msgid "Description"
msgstr "描述信息"
@@ -200,7 +210,7 @@ msgstr "描述 (可选)"
msgid "parent"
msgstr "上级项"
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:55 part/models.py:2475
msgid "Must be a valid number"
msgstr "必须是有效数字"
@@ -208,75 +218,75 @@ msgstr "必须是有效数字"
msgid "Filename"
msgstr "文件名"
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:529
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:530
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:531
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:532
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:533
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:534
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:535
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:536
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:537
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:538
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:539
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:540
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:541
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:542
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:543
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:544
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:545
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:546
msgid "Chinese"
msgstr "中文(简体)"
@@ -321,17 +331,17 @@ msgid "Returned"
msgstr "已退回"
#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: order/templates/order/sales_order_base.html:131
msgid "Shipped"
msgstr "已发货"
#: InvenTree/status_codes.py:186
msgid "OK"
-msgstr "确定"
+msgstr "OK"
#: InvenTree/status_codes.py:187
msgid "Attention needed"
-msgstr "注意"
+msgstr "需要关注"
#: InvenTree/status_codes.py:188
msgid "Damaged"
@@ -339,11 +349,11 @@ msgstr "破损"
#: InvenTree/status_codes.py:189
msgid "Destroyed"
-msgstr "销毁"
+msgstr "已销毁"
#: InvenTree/status_codes.py:191
msgid "Rejected"
-msgstr "已拒绝"
+msgstr "Rejected"
#: InvenTree/status_codes.py:272
msgid "Legacy stock tracking entry"
@@ -375,7 +385,7 @@ msgstr "库存手动删除"
#: InvenTree/status_codes.py:283
msgid "Location changed"
-msgstr "位置已更改"
+msgstr "仓储地点已更改"
#: InvenTree/status_codes.py:285
msgid "Installed into assembly"
@@ -423,7 +433,7 @@ msgstr "收到定购单"
#: InvenTree/status_codes.py:315
msgid "Production"
-msgstr "产品"
+msgstr "生产中"
#: InvenTree/validators.py:22
msgid "Not a valid currency code"
@@ -431,7 +441,7 @@ msgstr "不是有效的货币代码"
#: InvenTree/validators.py:50
msgid "Invalid character in part name"
-msgstr "部件名称中存在无效字符"
+msgstr "商品名称中存在无效字符"
#: InvenTree/validators.py:63
#, python-brace-format
@@ -461,27 +471,27 @@ msgstr "备损不能超过 100%"
msgid "Overage must be an integer value or a percentage"
msgstr "备损必须是整数值或百分比"
-#: InvenTree/views.py:610
+#: InvenTree/views.py:616
msgid "Delete Item"
msgstr "删除项"
-#: InvenTree/views.py:659
+#: InvenTree/views.py:665
msgid "Check box to confirm item deletion"
msgstr "选中方框以确认项目删除"
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
msgid "Edit User Information"
msgstr "编辑用户信息"
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
msgid "Set Password"
msgstr "设置密码"
-#: InvenTree/views.py:704
+#: InvenTree/views.py:710
msgid "Password fields must match"
msgstr "密码字段必须相匹配。"
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:954 templates/navbar.html:97
msgid "System Information"
msgstr "系统信息"
@@ -511,11 +521,11 @@ msgstr "条形码已经匹配库存项"
#: barcodes/api.py:194
msgid "Barcode already matches StockLocation object"
-msgstr "条形码已经匹配库存地对象"
+msgstr "条形码已经匹配仓储地对象"
#: barcodes/api.py:198
msgid "Barcode already matches Part object"
-msgstr "条形码已经匹配部件对象"
+msgstr "条形码已经匹配商品对象"
#: barcodes/api.py:204 barcodes/api.py:216
msgid "Barcode hash already matches StockItem object"
@@ -525,6 +535,10 @@ msgstr "条码哈希值已经匹配库存项目"
msgid "Barcode associated with StockItem"
msgstr "与库存项关联的条形码"
+#: build/api.py:213
+msgid "Matching build order does not exist"
+msgstr ""
+
#: build/forms.py:37
msgid "Build Order reference"
msgstr "相关生产订单"
@@ -536,33 +550,28 @@ msgstr "订单预计日期"
#: build/forms.py:42 build/templates/build/build_base.html:146
#: build/templates/build/detail.html:124
#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
+#: order/templates/order/sales_order_base.html:124
#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
+#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
+#: templates/js/translated/order.js:1074
msgid "Target Date"
msgstr "预计日期"
-#: build/forms.py:43 build/models.py:277
+#: build/forms.py:43 build/models.py:279
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:1402
+#: build/forms.py:48 build/forms.py:90 build/models.py:1281
#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
+#: build/templates/build/detail.html:34 common/models.py:1087
#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: order/forms.py:101 order/forms.py:123 order/models.py:720
+#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
+#: part/forms.py:265 part/forms.py:281 part/models.py:2377
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
@@ -570,16 +579,18 @@ msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
#: report/templates/report/inventree_test_report_base.html:77
#: stock/forms.py:140 stock/templates/stock/item_base.html:269
#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
+#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
+#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
+#: templates/js/translated/model_renderers.js:74
+#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
+#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
+#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
+#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
+#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
+#: templates/js/translated/stock.js:1829
msgid "Quantity"
-msgstr "库存数"
+msgstr "数量"
#: build/forms.py:49
msgid "Number of items to build"
@@ -589,7 +600,7 @@ msgstr "要生产的项目数量"
msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
msgid "Serial Numbers"
msgstr "序列号"
@@ -609,246 +620,238 @@ msgstr "确认删除生产产出"
msgid "Confirm unallocation of stock"
msgstr "确认取消分配库存"
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr "确认库存分配"
-
-#: build/forms.py:186
+#: build/forms.py:174
msgid "Mark build as complete"
msgstr "标记生产已完成"
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
+#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
+#: stock/forms.py:280 stock/serializers.py:553
#: stock/templates/stock/item_base.html:299
#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
+#: templates/js/translated/barcode.js:385
+#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
+#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
+#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
+#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
+#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
+#: templates/js/translated/stock.js:1546
msgid "Location"
-msgstr "所在地"
+msgstr "地点"
-#: build/forms.py:211
+#: build/forms.py:199
msgid "Location of completed parts"
-msgstr "已完成部件所在地"
+msgstr "已完成商品所在仓储地点"
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
+#: build/forms.py:203 build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:62 order/models.py:563
+#: order/serializers.py:238 stock/templates/stock/item_base.html:422
+#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
+#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
msgid "Status"
msgstr "状态"
-#: build/forms.py:216
+#: build/forms.py:204
msgid "Build output stock status"
msgstr "生产产出库存状态"
-#: build/forms.py:223
+#: build/forms.py:211
msgid "Confirm incomplete"
msgstr "确认未完成"
-#: build/forms.py:224
+#: build/forms.py:212
msgid "Confirm completion with incomplete stock allocation"
msgstr "确认以未完成库存分配方式完成"
-#: build/forms.py:227
+#: build/forms.py:215
msgid "Confirm build completion"
msgstr "确认生产完成"
-#: build/forms.py:252
+#: build/forms.py:240
msgid "Confirm cancel"
msgstr "确认取消"
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:240 build/views.py:65
msgid "Confirm build cancellation"
msgstr "确认生产取消"
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr "选择要分配的库存数量"
-
-#: build/models.py:113
+#: build/models.py:115
msgid "Invalid choice for parent build"
msgstr "上级生产选项无效"
-#: build/models.py:117 build/templates/build/build_base.html:9
+#: build/models.py:119 build/templates/build/build_base.html:9
#: build/templates/build/build_base.html:73
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:276
msgid "Build Order"
msgstr "生产订单"
-#: build/models.py:118 build/templates/build/index.html:8
+#: build/models.py:120 build/templates/build/index.html:8
#: build/templates/build/index.html:15
#: order/templates/order/sales_order_detail.html:34
#: order/templates/order/so_navbar.html:19
#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: templates/InvenTree/search.html:171
+#: templates/InvenTree/settings/navbar.html:113
+#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
msgid "Build Orders"
msgstr "生产订单"
-#: build/models.py:178
+#: build/models.py:180
msgid "Build Order Reference"
msgstr "相关生产订单"
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:181 order/models.py:246 order/models.py:547
+#: order/models.py:727 part/models.py:2386
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
+#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
+#: templates/js/translated/order.js:1438
msgid "Reference"
msgstr "引用"
-#: build/models.py:190
+#: build/models.py:192
msgid "Brief description of the build"
msgstr "生产的简短描述."
-#: build/models.py:199 build/templates/build/build_base.html:163
+#: build/models.py:201 build/templates/build/build_base.html:163
#: build/templates/build/detail.html:80
msgid "Parent Build"
msgstr "上级生产"
-#: build/models.py:200
+#: build/models.py:202
msgid "BuildOrder to which this build is allocated"
-msgstr "此次生生匹配的订单"
+msgstr "此次生产匹配的订单"
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:207 build/templates/build/build_base.html:128
+#: build/templates/build/detail.html:29 company/models.py:705
+#: order/models.py:780 order/models.py:851
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
+#: part/models.py:2000 part/models.py:2016 part/models.py:2035
+#: part/models.py:2053 part/models.py:2132 part/models.py:2254
+#: part/models.py:2361 part/templates/part/detail.html:199
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: 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:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
+#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
+#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
+#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
+#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
+#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
+#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
+#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
+#: templates/js/translated/stock.js:1817
msgid "Part"
-msgstr "部件"
+msgstr "商品"
-#: build/models.py:213
+#: build/models.py:215
msgid "Select part to build"
-msgstr "选择生产所需部件"
+msgstr "选择要生产的商品"
-#: build/models.py:218
+#: build/models.py:220
msgid "Sales Order Reference"
msgstr "相关销售订单"
-#: build/models.py:222
+#: build/models.py:224
msgid "SalesOrder to which this build is allocated"
msgstr "此次生产匹配的销售订单"
-#: build/models.py:227
+#: build/models.py:229 templates/js/translated/build.js:962
msgid "Source Location"
msgstr "来源地点"
-#: build/models.py:231
+#: build/models.py:233
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:238
msgid "Destination Location"
msgstr "目标地点"
-#: build/models.py:240
+#: build/models.py:242
msgid "Select location where the completed items will be stored"
-msgstr "选择已完成项目存储的位置"
+msgstr "选择已完成项目仓储地点"
-#: build/models.py:244
+#: build/models.py:246
msgid "Build Quantity"
msgstr "生产数量"
-#: build/models.py:247
+#: build/models.py:249
msgid "Number of stock items to build"
msgstr "要生产的项目数量"
-#: build/models.py:251
+#: build/models.py:253
msgid "Completed items"
msgstr "已完成项目"
-#: build/models.py:253
+#: build/models.py:255
msgid "Number of stock items which have been completed"
msgstr "已完成的库存项目数量"
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:259 part/templates/part/part_base.html:198
msgid "Build Status"
msgstr "生产状态"
-#: build/models.py:261
+#: build/models.py:263
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:267 stock/models.py:513
msgid "Batch Code"
msgstr "批量代码"
-#: build/models.py:269
+#: build/models.py:271
msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:274 order/models.py:162 part/models.py:854
+#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
msgid "Creation Date"
msgstr "创建日期"
-#: build/models.py:276 order/models.py:561
+#: build/models.py:278 order/models.py:569
msgid "Target completion date"
msgstr "预计完成日期"
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:282 order/models.py:288
+#: templates/js/translated/build.js:1293
msgid "Completion Date"
msgstr "完成日期:"
-#: build/models.py:286
+#: build/models.py:288
msgid "completed by"
msgstr "完成人"
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:296 templates/js/translated/build.js:1264
msgid "Issued by"
msgstr "发布者"
-#: build/models.py:295
+#: build/models.py:297
msgid "User who issued this build order"
msgstr "发布此生产订单的用户"
-#: build/models.py:303 build/templates/build/build_base.html:184
+#: build/models.py:305 build/templates/build/build_base.html:184
#: build/templates/build/detail.html:108 order/models.py:176
#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: order/templates/order/sales_order_base.html:145 part/models.py:858
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1276
msgid "Responsible"
msgstr "责任人"
-#: build/models.py:304
+#: build/models.py:306
msgid "User responsible for this build order"
msgstr "负责此生产订单的用户"
-#: build/models.py:309 build/templates/build/detail.html:94
+#: build/models.py:311 build/templates/build/detail.html:94
#: company/templates/company/manufacturer_part.html:83
#: company/templates/company/supplier_part.html:82
#: part/templates/part/part_base.html:266 stock/models.py:507
@@ -856,140 +859,157 @@ msgstr "负责此生产订单的用户"
msgid "External Link"
msgstr "外部链接"
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:312 part/models.py:716 stock/models.py:509
msgid "Link to external URL"
msgstr "链接到外部 URL"
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
+#: build/models.py:316 build/templates/build/navbar.html:52
+#: company/models.py:142 company/models.py:577
#: company/templates/company/navbar.html:69
#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: order/models.py:729 order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
+#: order/templates/order/so_navbar.html:36 part/models.py:843
#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
#: part/templates/part/navbar.html:123
#: report/templates/report/inventree_build_order_base.html:173
#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
+#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
+#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
+#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
msgid "Notes"
msgstr "备注"
-#: build/models.py:315
+#: build/models.py:317
msgid "Extra build notes"
msgstr "额外的生产备注"
-#: build/models.py:792
+#: build/models.py:714
msgid "No build output specified"
msgstr "未指定生产产出"
-#: build/models.py:795
+#: build/models.py:717
msgid "Build output is already completed"
msgstr "生产产出已完成"
-#: build/models.py:798
+#: build/models.py:720
msgid "Build output does not match Build Order"
msgstr "生产产出与订单不匹配"
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1102
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1111
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
-msgstr ""
+#: build/models.py:1121
+msgid "Stock item is over-allocated"
+msgstr "库存物品分配过度!"
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1127 order/models.py:955
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
-#: build/models.py:1252
+#: build/models.py:1133
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1191
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
+#: build/models.py:1251 stock/templates/stock/item_base.html:331
+#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
#: templates/navbar.html:35
msgid "Build"
msgstr "生产"
-#: build/models.py:1373
+#: build/models.py:1252
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
+#: build/models.py:1268 build/serializers.py:151
+#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:31
#: stock/templates/stock/item_base.html:353
#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
+#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
+#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
+#: templates/js/translated/stock.js:1605
msgid "Stock Item"
msgstr "库存项"
-#: build/models.py:1390
+#: build/models.py:1269
msgid "Source stock item"
msgstr "源库存项"
-#: build/models.py:1403
+#: build/models.py:1282
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1290
msgid "Install into"
+msgstr "安装到"
+
+#: build/models.py:1291
+msgid "Destination stock item"
msgstr ""
-#: build/models.py:1412
-msgid "Destination stock item"
+#: build/serializers.py:133 part/models.py:2501
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:142
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:157
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
+#: stock/models.py:351 stock/models.py:1072
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:180
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:213
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:219
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:226
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:254
+msgid "Allocation items must be provided"
msgstr ""
#: build/templates/build/allocation_card.html:21
#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
#: report/templates/report/inventree_test_report_base.html:75
#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
+#: templates/js/translated/build.js:636
+#: templates/js/translated/model_renderers.js:72
+#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
msgid "Serial Number"
msgstr "序列号"
-#: build/templates/build/auto_allocate.html:9
-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"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
-msgstr ""
-
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
-msgstr ""
-
#: build/templates/build/build_base.html:18
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
@@ -1010,7 +1030,7 @@ msgstr ""
#: build/templates/build/build_base.html:42
msgid "Required build quantity has not yet been completed"
-msgstr ""
+msgstr "所需生产数量尚未完成"
#: build/templates/build/build_base.html:47
msgid "Stock has not been fully allocated to this Build Order"
@@ -1033,10 +1053,10 @@ msgstr "管理界面"
#: order/templates/order/order_base.html:32
#: order/templates/order/order_base.html:86
#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
+#: order/templates/order/sales_order_base.html:93
#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:300
+#: templates/js/translated/table_filters.js:317
msgid "Overdue"
msgstr "逾期"
@@ -1086,14 +1106,14 @@ msgid "Progress"
msgstr "生产进度"
#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/detail.html:87 order/models.py:848
#: order/templates/order/sales_order_base.html:9
#: order/templates/order/sales_order_base.html:35
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: templates/js/translated/order.js:1016
msgid "Sales Order"
msgstr "销售订单"
@@ -1125,7 +1145,7 @@ msgstr ""
#: build/templates/build/build_output_create.html:15
msgid "Trackable parts can have serial numbers specified"
-msgstr ""
+msgstr "可追踪商品可以指定序列号"
#: build/templates/build/build_output_create.html:16
msgid "Enter serial numbers to generate multiple single build outputs"
@@ -1133,7 +1153,7 @@ msgstr ""
#: build/templates/build/cancel.html:5
msgid "Are you sure you wish to cancel this build?"
-msgstr ""
+msgstr "是否确定取消生产?"
#: build/templates/build/complete.html:8
msgid "Build Order is complete"
@@ -1153,7 +1173,7 @@ msgstr "所需生产数量尚未完成"
#: build/templates/build/complete.html:21
msgid "Required stock has not been fully allocated"
-msgstr ""
+msgstr "所需库存尚未完全分配"
#: build/templates/build/complete_output.html:10
msgid "Stock allocation is complete for this output"
@@ -1171,28 +1191,6 @@ msgstr ""
msgid "The following items will be created"
msgstr ""
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-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"
-msgstr ""
-
-#: 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
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
#: build/templates/build/detail.html:38
msgid "Stock Source"
msgstr ""
@@ -1201,9 +1199,8 @@ msgstr ""
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
msgid "Destination"
msgstr ""
@@ -1213,7 +1210,7 @@ msgstr ""
#: build/templates/build/detail.html:73
#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
+#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
#: templates/js/translated/table_filters.js:129
#: templates/js/translated/table_filters.js:211
msgid "Batch"
@@ -1221,8 +1218,8 @@ msgstr ""
#: build/templates/build/detail.html:119
#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: order/templates/order/sales_order_base.html:118
+#: templates/js/translated/build.js:1259
msgid "Created"
msgstr "已创建"
@@ -1230,35 +1227,37 @@ msgstr "已创建"
msgid "No target date set"
msgstr "无预计日期"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
+#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
+#: templates/js/translated/table_filters.js:282
msgid "Completed"
-msgstr ""
+msgstr "已完成"
#: build/templates/build/detail.html:139
msgid "Build not complete"
-msgstr ""
+msgstr "生产未完成"
#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
msgid "Child Build Orders"
-msgstr ""
+msgstr "子生产订单"
#: build/templates/build/detail.html:166
msgid "Allocate Stock to Build"
-msgstr ""
+msgstr "为生产分配库存"
#: build/templates/build/detail.html:172
msgid "Allocate stock to build"
-msgstr ""
+msgstr "为生产分配库存"
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr ""
+#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
+#: build/templates/build/navbar.html:23
+msgid "Allocate Stock"
+msgstr "分配库存"
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
msgid "Unallocate stock"
-msgstr ""
+msgstr "未分配库存"
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:176 build/views.py:257
msgid "Unallocate Stock"
msgstr "未分配库存"
@@ -1268,10 +1267,10 @@ msgstr "订单所需部件"
#: build/templates/build/detail.html:180
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
+#: company/templates/company/detail.html:72 order/views.py:509
#: part/templates/part/category.html:140
msgid "Order Parts"
-msgstr "订单部件"
+msgstr "订购商品"
#: build/templates/build/detail.html:186
msgid "Untracked stock has been fully allocated for this Build Order"
@@ -1282,38 +1281,42 @@ msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "未跟踪的库存尚未完全分配给此生产订单"
#: build/templates/build/detail.html:197
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:209
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:218
msgid "Incomplete Build Outputs"
msgstr "未完成的生产产出"
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:223
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
+#: build/templates/build/detail.html:224
msgid "Create New Output"
msgstr ""
-#: build/templates/build/detail.html:225
+#: build/templates/build/detail.html:237
msgid "Create a new build output"
msgstr ""
-#: build/templates/build/detail.html:226
+#: build/templates/build/detail.html:238
msgid "No incomplete build outputs remain."
msgstr ""
-#: build/templates/build/detail.html:227
+#: build/templates/build/detail.html:239
msgid "Create a new build output using the button above"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:247
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
+#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
#: order/templates/order/sales_order_detail.html:43
#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
@@ -1321,55 +1324,64 @@ msgstr ""
#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
#: stock/templates/stock/navbar.html:50
msgid "Attachments"
-msgstr ""
+msgstr "附件"
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:269
msgid "Build Notes"
-msgstr ""
+msgstr "生产备注"
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
+#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
#: company/templates/company/detail.html:169
#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
+#: order/templates/order/purchase_order_detail.html:71
+#: order/templates/order/purchase_order_detail.html:104
#: order/templates/order/sales_order_detail.html:58
#: order/templates/order/sales_order_detail.html:85
#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
#: stock/templates/stock/item.html:188
msgid "Edit Notes"
-msgstr ""
+msgstr "编辑备注"
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:373
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
+#: order/templates/order/purchase_order_detail.html:166
#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
+#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
#: templates/attachment_table.html:6
msgid "Add Attachment"
-msgstr ""
+msgstr "添加附件"
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:392
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
+#: order/templates/order/purchase_order_detail.html:138
#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
msgid "Edit Attachment"
-msgstr ""
+msgstr "编辑附件"
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:399
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
+#: order/templates/order/purchase_order_detail.html:145
#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
+#: templates/js/translated/order.js:1230
msgid "Confirm Delete Operation"
+msgstr "确认删除操作"
+
+#: build/templates/build/detail.html:400
+#: order/templates/order/po_attachments.html:59
+#: order/templates/order/purchase_order_detail.html:146
+#: order/templates/order/sales_order_detail.html:126
+#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+msgid "Delete Attachment"
+msgstr "删除附件"
+
+#: build/templates/build/detail.html:443
+msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:384
-#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
-msgid "Delete Attachment"
+#: build/templates/build/detail.html:444
+msgid "All untracked stock items have been allocated"
msgstr ""
#: build/templates/build/edit_build_item.html:7
@@ -1378,41 +1390,36 @@ msgstr ""
#: build/templates/build/index.html:28
msgid "New Build Order"
-msgstr ""
+msgstr "新建生产订单"
#: build/templates/build/index.html:37 build/templates/build/index.html:38
msgid "Print Build Orders"
-msgstr ""
+msgstr "打印生产订单"
#: build/templates/build/index.html:43
#: order/templates/order/purchase_orders.html:27
#: order/templates/order/sales_orders.html:27
msgid "Display calendar view"
-msgstr ""
+msgstr "显示日历"
#: build/templates/build/index.html:46
#: order/templates/order/purchase_orders.html:30
#: order/templates/order/sales_orders.html:30
msgid "Display list view"
-msgstr ""
+msgstr "列表视图"
#: build/templates/build/navbar.html:12
msgid "Build Order Details"
-msgstr ""
+msgstr "生产订单详情"
#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
+#: templates/js/translated/stock.js:1534
msgid "Details"
-msgstr ""
-
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
+msgstr "详情"
#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
msgid "Build Outputs"
-msgstr ""
+msgstr "生产产出"
#: build/templates/build/navbar.html:38
msgid "Child Builds"
@@ -1420,137 +1427,99 @@ msgstr ""
#: build/templates/build/navbar.html:49
msgid "Build Order Notes"
-msgstr ""
+msgstr "生产订单备注"
#: build/templates/build/unallocate.html:10
msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
+msgstr "您确定要取消此生产的所有库存分配?"
#: build/templates/build/unallocate.html:12
msgid "All incomplete stock allocations will be removed from the build"
-msgstr ""
+msgstr "所有未完成的库存分配都将从生产中删除"
#: build/views.py:76
msgid "Build was cancelled"
-msgstr ""
+msgstr "生产已取消"
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
-msgstr ""
+msgstr "创建创建生产产出"
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
-msgstr ""
+msgstr "最大产出量是 "
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/views.py:1366
msgid "Serial numbers already exist"
-msgstr ""
+msgstr "序列号已存在"
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
-msgstr ""
+msgstr "可追踪的生产产出需要序列号"
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
-msgstr ""
+msgstr "删除生产产出"
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218 build/views.py:308
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 build/views.py:309 stock/views.py:381
msgid "Check the confirmation box"
-msgstr ""
+msgstr "选中确认框"
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
-msgstr ""
+msgstr "生产产出与生产不匹配"
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233 build/views.py:434
msgid "Build output must be specified"
-msgstr ""
+msgstr "必须指定生成产出"
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
-msgstr ""
+msgstr "生产产出已删除"
-#: build/views.py:404
+#: build/views.py:343
msgid "Complete Build Order"
-msgstr ""
+msgstr "生产订单完成"
-#: build/views.py:410
+#: build/views.py:349
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:360
msgid "Completed build order"
-msgstr ""
+msgstr "已完成的生产订单"
-#: build/views.py:437
+#: build/views.py:376
msgid "Complete Build Output"
msgstr ""
-#: build/views.py:479
+#: build/views.py:418
msgid "Invalid stock status value selected"
-msgstr ""
+msgstr "选定的库存状态值无效"
-#: build/views.py:486
+#: build/views.py:425
msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
+msgstr "完成数量不能超过生产产出数量"
-#: build/views.py:492
+#: build/views.py:431
msgid "Confirm completion of incomplete build"
msgstr ""
-#: build/views.py:591
+#: build/views.py:530
msgid "Build output completed"
-msgstr ""
+msgstr "生产产出已完成"
-#: build/views.py:628
+#: build/views.py:567
msgid "Delete Build Order"
-msgstr ""
-
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
+msgstr "删除生产订单"
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
-msgstr ""
+msgstr "不支持的文件格式: {ext.uper()}"
#: common/files.py:69
msgid "Error reading file (invalid encoding)"
@@ -1585,7 +1554,7 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:308 common/models.py:887 common/models.py:1048
msgid "Settings key (must be unique - case insensitive"
msgstr ""
@@ -1625,13 +1594,13 @@ msgstr ""
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:522 company/models.py:100 company/models.py:101
msgid "Company name"
-msgstr ""
+msgstr "公司名称"
#: common/models.py:523
msgid "Internal company name"
-msgstr ""
+msgstr "内部公司名称"
#: common/models.py:528
msgid "Base URL"
@@ -1663,7 +1632,7 @@ msgstr ""
#: common/models.py:550
msgid "Enable barcode scanner support"
-msgstr ""
+msgstr "启用条形码扫描支持"
#: common/models.py:556
msgid "IPN Regex"
@@ -1721,510 +1690,582 @@ msgstr ""
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
+#: common/models.py:603 part/models.py:2256 report/models.py:187
#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:351
msgid "Template"
-msgstr ""
+msgstr "模板"
#: common/models.py:604
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
+#: common/models.py:610 part/models.py:806
#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: templates/js/translated/table_filters.js:363
msgid "Assembly"
-msgstr ""
+msgstr "组装"
#: common/models.py:611
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:617 part/models.py:812
+#: templates/js/translated/table_filters.js:367
msgid "Component"
-msgstr ""
+msgstr "组件"
#: common/models.py:618
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:624 part/models.py:823
msgid "Purchaseable"
-msgstr ""
+msgstr "可购买"
#: common/models.py:625
msgid "Parts are purchaseable by default"
-msgstr ""
+msgstr "商品默认可购买"
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:631 part/models.py:828
+#: templates/js/translated/table_filters.js:375
msgid "Salable"
-msgstr ""
+msgstr "可销售"
#: common/models.py:632
msgid "Parts are salable by default"
-msgstr ""
+msgstr "商品默认可销售"
-#: common/models.py:638 part/models.py:817
+#: common/models.py:638 part/models.py:818
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:379
msgid "Trackable"
-msgstr ""
+msgstr "可追踪"
#: common/models.py:639
msgid "Parts are trackable by default"
-msgstr ""
+msgstr "商品默认可跟踪"
-#: common/models.py:645 part/models.py:837
+#: common/models.py:645 part/models.py:838
#: part/templates/part/part_base.html:66
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
-msgstr ""
+msgstr "虚拟"
#: common/models.py:646
msgid "Parts are virtual by default"
-msgstr ""
+msgstr "商品默认是虚拟的"
+
+#: common/models.py:652
+msgid "Show Import in Views"
+msgstr "视图中显示导入"
#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
+msgid "Display the import wizard in some part views"
+msgstr "在一些商品视图中显示导入向导"
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
+#: common/models.py:659
+msgid "Show Price in Forms"
+msgstr "在表格中显示价格"
#: common/models.py:660
-msgid "Show Import in Views"
-msgstr ""
-
-#: common/models.py:661
-msgid "Display the import wizard in some part views"
-msgstr ""
-
-#: common/models.py:667
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:668
msgid "Display part price in some forms"
+msgstr "以某些表格显示商品价格"
+
+#: common/models.py:671
+msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:674
+#: common/models.py:672
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:678
msgid "Show related parts"
-msgstr ""
+msgstr "显示相关商品"
-#: common/models.py:675
+#: common/models.py:679
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:685
msgid "Create initial stock"
-msgstr ""
+msgstr "创建初始库存"
-#: common/models.py:682
+#: common/models.py:686
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:692
msgid "Internal Prices"
-msgstr ""
+msgstr "内部价格"
-#: common/models.py:689
+#: common/models.py:693
msgid "Enable internal prices for parts"
-msgstr ""
+msgstr "启用内部商品价格"
-#: common/models.py:695
+#: common/models.py:699
msgid "Internal Price as BOM-Price"
-msgstr ""
+msgstr "内部价格为BOM价格"
-#: common/models.py:696
+#: common/models.py:700
msgid "Use the internal price (if set) in BOM-price calculations"
-msgstr ""
+msgstr "在 BOM价格计算中使用内部价格(如设置)"
-#: common/models.py:702 templates/stats.html:25
+#: common/models.py:706 templates/stats.html:25
msgid "Debug Mode"
-msgstr ""
+msgstr "调试模式"
-#: common/models.py:703
+#: common/models.py:707
msgid "Generate reports in debug mode (HTML output)"
-msgstr ""
+msgstr "在调试模式生成报告(HTML输出)"
-#: common/models.py:709
+#: common/models.py:713
msgid "Page Size"
-msgstr ""
+msgstr "页面大小"
-#: common/models.py:710
+#: common/models.py:714
msgid "Default page size for PDF reports"
-msgstr ""
+msgstr "PDF 报表默认页面大小"
-#: common/models.py:720
+#: common/models.py:724
msgid "Test Reports"
-msgstr ""
+msgstr "测试报表"
-#: common/models.py:721
+#: common/models.py:725
msgid "Enable generation of test reports"
-msgstr ""
+msgstr "启用生成测试报表"
-#: common/models.py:727
+#: common/models.py:731
msgid "Stock Expiry"
-msgstr ""
+msgstr "库存到期"
-#: common/models.py:728
+#: common/models.py:732
msgid "Enable stock expiry functionality"
-msgstr ""
+msgstr "启用库存到期功能"
-#: common/models.py:734
+#: common/models.py:738
msgid "Sell Expired Stock"
-msgstr ""
+msgstr "销售过期库存"
-#: common/models.py:735
+#: common/models.py:739
msgid "Allow sale of expired stock"
-msgstr ""
+msgstr "允许销售过期库存"
-#: common/models.py:741
+#: common/models.py:745
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:742
+#: common/models.py:746
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:744
+#: common/models.py:748
msgid "days"
-msgstr ""
+msgstr "天"
-#: common/models.py:749
+#: common/models.py:753
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:750
+#: common/models.py:754
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:756
+#: common/models.py:760
msgid "Stock Ownership Control"
-msgstr ""
+msgstr "库存所有权控制"
-#: common/models.py:757
+#: common/models.py:761
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:763
+#: common/models.py:767
msgid "Group by Part"
-msgstr ""
+msgstr "按商品分组"
-#: common/models.py:764
+#: common/models.py:768
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:770
+#: common/models.py:774
msgid "Build Order Reference Prefix"
-msgstr ""
+msgstr "生产订单参考前缀"
-#: common/models.py:771
+#: common/models.py:775
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:776
+#: common/models.py:780
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:777
+#: common/models.py:781
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:781
+#: common/models.py:785
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:782
+#: common/models.py:786
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:787
+#: common/models.py:791
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:788
+#: common/models.py:792
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:794
+#: common/models.py:798
msgid "Enable build"
msgstr ""
-#: common/models.py:795
+#: common/models.py:799
msgid "Enable build functionality in InvenTree interface"
msgstr ""
-#: common/models.py:800
+#: common/models.py:804
msgid "Enable buy"
-msgstr ""
+msgstr "启用采购"
-#: common/models.py:801
+#: common/models.py:805
msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
+msgstr "在 InventTree 界面中启用采购功能"
-#: common/models.py:806
+#: common/models.py:810
msgid "Enable sell"
-msgstr ""
+msgstr "启用销售"
-#: common/models.py:807
+#: common/models.py:811
msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
+msgstr "在 InventTree 界面中启用销售功能"
-#: common/models.py:812
+#: common/models.py:816
msgid "Enable stock"
msgstr ""
-#: common/models.py:813
+#: common/models.py:817
msgid "Enable stock functionality in InvenTree interface"
msgstr ""
-#: common/models.py:818
+#: common/models.py:822
msgid "Enable SO"
msgstr ""
-#: common/models.py:819
+#: common/models.py:823
msgid "Enable SO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:824
+#: common/models.py:828
msgid "Enable PO"
msgstr ""
-#: common/models.py:825
+#: common/models.py:829
msgid "Enable PO functionality in InvenTree interface"
msgstr ""
-#: common/models.py:850
+#: common/models.py:836
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:837
+msgid "Enable password forgot function on the login-pages"
+msgstr ""
+
+#: common/models.py:842
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:843
+msgid "Enable self-registration for users on the login-pages"
+msgstr ""
+
+#: common/models.py:848
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:849
+msgid "Enable SSO on the login-pages"
+msgstr ""
+
+#: common/models.py:854
+msgid "E-Mail required"
+msgstr ""
+
+#: common/models.py:855
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:860
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:861
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:866
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:867
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:872
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:873
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:898
msgid "Show starred parts"
-msgstr ""
+msgstr "显示星标商品"
-#: common/models.py:851
+#: common/models.py:899
msgid "Show starred parts on the homepage"
-msgstr ""
+msgstr "在主页上显示星标商品"
-#: common/models.py:856
+#: common/models.py:904
msgid "Show latest parts"
-msgstr ""
+msgstr "显示最近商品"
-#: common/models.py:857
+#: common/models.py:905
msgid "Show latest parts on the homepage"
-msgstr ""
+msgstr "在主页上显示最近商品"
-#: common/models.py:862
+#: common/models.py:910
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:863
+#: common/models.py:911
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:869
+#: common/models.py:917
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:870
+#: common/models.py:918
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:875
+#: common/models.py:923
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:876
+#: common/models.py:924
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:881
+#: common/models.py:929
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:882
+#: common/models.py:930
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:887
+#: common/models.py:935
msgid "Show low stock"
msgstr ""
-#: common/models.py:888
+#: common/models.py:936
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:893
+#: common/models.py:941
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:894
+#: common/models.py:942
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:899
+#: common/models.py:947
msgid "Show needed stock"
msgstr ""
-#: common/models.py:900
+#: common/models.py:948
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:905
+#: common/models.py:953
msgid "Show expired stock"
msgstr ""
-#: common/models.py:906
+#: common/models.py:954
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:911
+#: common/models.py:959
msgid "Show stale stock"
msgstr ""
-#: common/models.py:912
+#: common/models.py:960
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:917
+#: common/models.py:965
msgid "Show pending builds"
msgstr ""
-#: common/models.py:918
+#: common/models.py:966
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:971
msgid "Show overdue builds"
-msgstr ""
+msgstr "显示逾期生产"
-#: common/models.py:924
+#: common/models.py:972
msgid "Show overdue builds on the homepage"
-msgstr ""
+msgstr "在主页上显示逾期的生产"
-#: common/models.py:929
+#: common/models.py:977
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:930
+#: common/models.py:978
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:935
+#: common/models.py:983
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:936
+#: common/models.py:984
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:941
+#: common/models.py:989
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:942
+#: common/models.py:990
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:995
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:948
+#: common/models.py:996
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:954
+#: common/models.py:1002
msgid "Inline label display"
-msgstr ""
+msgstr "内嵌标签显示"
-#: common/models.py:955
+#: common/models.py:1003
msgid "Display PDF labels in the browser, instead of downloading as a file"
-msgstr ""
+msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载"
-#: common/models.py:961
+#: common/models.py:1009
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1010
msgid "Display PDF reports in the browser, instead of downloading as a file"
-msgstr ""
+msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载"
-#: common/models.py:968
+#: common/models.py:1016
msgid "Search Preview Results"
-msgstr ""
+msgstr "搜索预览结果"
-#: common/models.py:969
+#: common/models.py:1017
msgid "Number of results to show in search preview window"
+msgstr "搜索预览窗口中显示的结果数"
+
+#: common/models.py:1023
+msgid "Show Quantity in Forms"
+msgstr "在表格中显示数量"
+
+#: common/models.py:1024
+msgid "Display available part quantity in some forms"
+msgstr "在某些表格中显示可用的商品数量"
+
+#: common/models.py:1030
+msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1031
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1088 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1095 company/templates/company/supplier_part.html:231
+#: templates/js/translated/part.js:1369
msgid "Price"
-msgstr ""
+msgstr "价格"
-#: common/models.py:1034
+#: common/models.py:1096
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
+#: common/models.py:1189
msgid "Default"
-msgstr ""
+msgstr "默认"
#: common/templates/common/edit_setting.html:11
msgid "Current value"
-msgstr ""
+msgstr "当前数值"
#: common/views.py:33
msgid "Change Setting"
-msgstr ""
+msgstr "更改设置"
#: common/views.py:119
msgid "Supplied value is not allowed"
-msgstr ""
+msgstr "提供的值不被允许"
#: common/views.py:128
msgid "Supplied value must be a boolean"
-msgstr ""
+msgstr "提供的值必须为布尔值"
#: common/views.py:138
msgid "Change User Setting"
-msgstr ""
+msgstr "更改用户设置"
#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
+#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
#: part/templates/part/bom_upload/upload_file.html:65
#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
#: part/views.py:882
msgid "Upload File"
-msgstr ""
+msgstr "上传文件"
#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
#: part/views.py:883
msgid "Match Fields"
-msgstr ""
+msgstr "匹配字段"
#: common/views.py:215
msgid "Match Items"
-msgstr ""
+msgstr "匹配项"
#: common/views.py:560
msgid "Fields matching failed"
-msgstr ""
+msgstr "字段匹配失败"
#: common/views.py:615
msgid "Parts imported"
-msgstr ""
+msgstr "已导入商品"
#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
@@ -2240,337 +2281,337 @@ msgstr ""
#: company/forms.py:24 part/forms.py:46
msgid "URL"
-msgstr ""
+msgstr "URL"
#: company/forms.py:25 part/forms.py:47
msgid "Image URL"
-msgstr ""
-
-#: company/models.py:104
-msgid "Company description"
-msgstr ""
+msgstr "图片URL"
#: company/models.py:105
-msgid "Description of the company"
-msgstr ""
+msgid "Company description"
+msgstr "公司简介"
-#: company/models.py:111 company/templates/company/company_base.html:70
+#: company/models.py:106
+msgid "Description of the company"
+msgstr "公司简介"
+
+#: company/models.py:112 company/templates/company/company_base.html:70
#: templates/js/translated/company.js:348
msgid "Website"
-msgstr ""
+msgstr "网站"
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
-msgstr ""
+msgstr "公司网站"
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
-msgstr ""
+msgstr "地址"
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
-msgstr ""
-
-#: company/models.py:120
-msgid "Phone number"
-msgstr ""
+msgstr "公司地址"
#: company/models.py:121
+msgid "Phone number"
+msgstr "电话号码"
+
+#: company/models.py:122
msgid "Contact phone number"
-msgstr ""
+msgstr "联系电话"
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
msgid "Email"
-msgstr ""
+msgstr "电子邮件"
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
-msgstr ""
+msgstr "联系人电子邮件"
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
-msgstr ""
+msgstr "联系人"
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:160 part/models.py:715
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:536
+#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
msgid "Link"
-msgstr ""
+msgstr "链接"
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
-msgstr ""
+msgstr "链接到外部公司信息"
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:725
msgid "Image"
-msgstr ""
+msgstr "图片"
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
-msgstr ""
+msgstr "是客户"
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
-msgstr ""
+msgstr "您是否向该公司出售商品?"
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
-msgstr ""
+msgstr "是供应商"
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
-msgstr ""
+msgstr "您是否从该公司采购商品?"
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
-msgstr ""
+msgstr "是制造商"
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
-msgstr ""
+msgstr "该公司制造商品吗?"
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:264
+#: company/templates/company/company_base.html:76 stock/serializers.py:158
msgid "Currency"
-msgstr ""
+msgstr "货币"
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
-msgstr ""
+msgstr "该公司使用的默认货币"
-#: company/models.py:319 company/models.py:534 stock/models.py:454
+#: company/models.py:320 company/models.py:535 stock/models.py:454
#: stock/templates/stock/item_base.html:237
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
-msgstr ""
+msgstr "选择商品"
-#: company/models.py:334 company/templates/company/company_base.html:116
+#: company/models.py:335 company/templates/company/company_base.html:116
#: company/templates/company/manufacturer_part.html:89
#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
+#: part/bom.py:247 stock/templates/stock/item_base.html:366
#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: templates/js/translated/company.js:513
+#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
msgid "Manufacturer"
-msgstr ""
+msgstr "制造商"
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:228
msgid "Select manufacturer"
-msgstr ""
+msgstr "选择制造商"
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
+#: company/models.py:342 company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: part/bom.py:248 templates/js/translated/company.js:529
+#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
+#: templates/js/translated/part.js:238
msgid "MPN"
-msgstr ""
+msgstr "MPN"
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:239
msgid "Manufacturer Part Number"
-msgstr ""
+msgstr "制造商商品编号"
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
-msgstr ""
+msgstr "制造商商品描述"
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
#: stock/templates/stock/item_base.html:376
msgid "Manufacturer Part"
-msgstr ""
+msgstr "制造商商品"
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
-msgstr ""
-
-#: company/models.py:421
-#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
-msgid "Value"
-msgstr ""
+msgstr "参数名称"
#: company/models.py:422
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
+#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
+#: templates/js/translated/stock.js:555
+msgid "Value"
+msgstr "数值"
+
+#: company/models.py:423
msgid "Parameter value"
-msgstr ""
+msgstr "参数值"
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:800 part/models.py:2224
+#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
msgid "Units"
-msgstr ""
+msgstr "单位"
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
-msgstr ""
+msgstr "参数单位"
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
+#: company/models.py:545 company/templates/company/company_base.html:121
#: company/templates/company/supplier_part.html:88 order/models.py:260
#: 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:383
+#: part/bom.py:292 stock/templates/stock/item_base.html:383
#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
+#: templates/js/translated/part.js:208
msgid "Supplier"
-msgstr ""
+msgstr "供应商"
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:209
msgid "Select supplier"
-msgstr ""
+msgstr "选择供应商"
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:92
+#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
+#: templates/js/translated/part.js:219
msgid "SKU"
-msgstr ""
+msgstr "SKU"
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:220
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
-msgstr ""
+msgstr "选择制造商商品"
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
-msgstr ""
+msgstr "外部供货商商品链接URL"
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
-msgstr ""
+msgstr "供应商商品描述"
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:120
+#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
-msgstr ""
+msgstr "备注"
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1603
msgid "Minimum charge (e.g. stocking fee)"
-msgstr ""
+msgstr "最低收费(例如库存费)"
-#: company/models.py:581 company/templates/company/supplier_part.html:113
+#: company/models.py:582 company/templates/company/supplier_part.html:113
#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
msgid "Packaging"
-msgstr ""
+msgstr "打包"
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
-msgstr ""
+msgstr "商品打包"
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1605
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
#: company/serializers.py:68
msgid "Default currency used for this supplier"
-msgstr ""
+msgstr "该公司使用的默认货币"
#: company/serializers.py:69
msgid "Currency Code"
-msgstr ""
+msgstr "货币代码"
#: company/templates/company/company_base.html:9
#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
msgid "Company"
-msgstr ""
+msgstr "公司"
#: company/templates/company/company_base.html:25
#: part/templates/part/part_thumb.html:21
msgid "Upload new image"
-msgstr ""
+msgstr "上传新图片"
#: company/templates/company/company_base.html:27
#: part/templates/part/part_thumb.html:23
msgid "Download image from URL"
-msgstr ""
+msgstr "从 URL 下载图片"
#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: templates/js/translated/order.js:120
msgid "Create Purchase Order"
-msgstr ""
+msgstr "创建采购订单"
#: company/templates/company/company_base.html:51
msgid "Edit company information"
-msgstr ""
+msgstr "编辑公司信息"
#: company/templates/company/company_base.html:56
#: company/templates/company/company_base.html:153
msgid "Delete Company"
-msgstr ""
+msgstr "删除该公司"
#: company/templates/company/company_base.html:64
msgid "Company Details"
-msgstr ""
+msgstr "公司详细信息"
#: company/templates/company/company_base.html:81
msgid "Uses default currency"
-msgstr ""
+msgstr "使用默认货币"
#: company/templates/company/company_base.html:95
msgid "Phone"
-msgstr ""
+msgstr "电话"
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
+#: company/templates/company/company_base.html:126 order/models.py:558
+#: order/templates/order/sales_order_base.html:99 stock/models.py:496
#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
+#: templates/js/translated/stock.js:1587
msgid "Customer"
-msgstr ""
+msgstr "客户"
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:199
+#: part/templates/part/part_base.html:424
msgid "Upload Image"
-msgstr ""
+msgstr "上传图片"
#: company/templates/company/detail.html:14
#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: templates/InvenTree/search.html:150
msgid "Supplier Parts"
-msgstr ""
+msgstr "供应商商品"
#: company/templates/company/detail.html:22
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
-msgstr ""
+msgstr "创建新的供应商商品"
#: company/templates/company/detail.html:23
#: company/templates/company/manufacturer_part.html:109
#: part/templates/part/detail.html:289
msgid "New Supplier Part"
-msgstr ""
+msgstr "新建供应商商品"
#: company/templates/company/detail.html:27
#: company/templates/company/detail.html:67
@@ -2579,39 +2620,39 @@ msgstr ""
#: part/templates/part/category.html:135 part/templates/part/detail.html:292
#: part/templates/part/detail.html:315
msgid "Options"
-msgstr ""
+msgstr "选项"
#: company/templates/company/detail.html:32
#: company/templates/company/detail.html:72
#: part/templates/part/category.html:140
msgid "Order parts"
-msgstr ""
+msgstr "订购商品"
#: company/templates/company/detail.html:35
#: company/templates/company/detail.html:75
msgid "Delete parts"
-msgstr ""
+msgstr "删除商品"
#: company/templates/company/detail.html:35
#: company/templates/company/detail.html:75
msgid "Delete Parts"
-msgstr ""
+msgstr "删除商品"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
msgid "Manufacturer Parts"
-msgstr ""
+msgstr "制造商商品"
#: company/templates/company/detail.html:62
msgid "Create new manufacturer part"
-msgstr ""
+msgstr "新建制造商商品"
#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
msgid "New Manufacturer Part"
-msgstr ""
+msgstr "新建制造商商品"
#: company/templates/company/detail.html:93
msgid "Supplier Stock"
-msgstr ""
+msgstr "供货商库存"
#: company/templates/company/detail.html:102
#: company/templates/company/navbar.html:46
@@ -2620,22 +2661,22 @@ msgstr ""
#: order/templates/order/purchase_orders.html:13
#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: templates/InvenTree/search.html:229
+#: templates/InvenTree/settings/navbar.html:119
+#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
#: users/models.py:45
msgid "Purchase Orders"
-msgstr ""
+msgstr "采购订单"
#: company/templates/company/detail.html:108
#: order/templates/order/purchase_orders.html:20
msgid "Create new purchase order"
-msgstr ""
+msgstr "新建采购订单"
#: company/templates/company/detail.html:109
#: order/templates/order/purchase_orders.html:21
msgid "New Purchase Order"
-msgstr ""
+msgstr "新建采购订单"
#: company/templates/company/detail.html:124
#: company/templates/company/navbar.html:55
@@ -2644,97 +2685,97 @@ msgstr ""
#: order/templates/order/sales_orders.html:13
#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: templates/InvenTree/search.html:249
+#: templates/InvenTree/settings/navbar.html:125
+#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
#: users/models.py:46
msgid "Sales Orders"
-msgstr ""
+msgstr "销售订单"
#: company/templates/company/detail.html:130
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
-msgstr ""
+msgstr "新建销售订单"
#: company/templates/company/detail.html:131
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
-msgstr ""
+msgstr "新建销售订单"
#: company/templates/company/detail.html:147
#: company/templates/company/navbar.html:61
#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: templates/js/translated/build.js:622
msgid "Assigned Stock"
msgstr ""
#: company/templates/company/detail.html:165
msgid "Company Notes"
-msgstr ""
+msgstr "公司备注"
#: company/templates/company/detail.html:364
#: company/templates/company/manufacturer_part.html:200
#: part/templates/part/detail.html:357
msgid "Delete Supplier Parts?"
-msgstr ""
+msgstr "删除供应商商品?"
#: company/templates/company/detail.html:365
#: company/templates/company/manufacturer_part.html:201
#: part/templates/part/detail.html:358
msgid "All selected supplier parts will be deleted"
-msgstr ""
+msgstr "删除所有选定的供应商商品"
#: company/templates/company/index.html:8
msgid "Supplier List"
-msgstr ""
+msgstr "供应商列表"
#: company/templates/company/manufacturer_part.html:40
#: company/templates/company/supplier_part.html:40
#: company/templates/company/supplier_part.html:146
#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
msgid "Order part"
-msgstr ""
+msgstr "订购商品"
#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: templates/js/translated/company.js:561
msgid "Edit manufacturer part"
-msgstr ""
+msgstr "编辑制造商商品"
#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Delete manufacturer part"
-msgstr ""
+msgstr "删除生产商商品"
#: company/templates/company/manufacturer_part.html:61
msgid "Manufacturer Part Details"
-msgstr ""
+msgstr "制造商商品详细信息"
#: company/templates/company/manufacturer_part.html:66
#: company/templates/company/supplier_part.html:65
msgid "Internal Part"
-msgstr ""
+msgstr "内部商品"
#: company/templates/company/manufacturer_part.html:103
#: company/templates/company/manufacturer_part_navbar.html:21
#: company/views.py:49 part/templates/part/navbar.html:75
#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: templates/InvenTree/search.html:220 templates/navbar.html:41
msgid "Suppliers"
-msgstr ""
+msgstr "供应商"
#: company/templates/company/manufacturer_part.html:114
#: part/templates/part/detail.html:294
msgid "Delete supplier parts"
-msgstr ""
+msgstr "删除供应商商品"
#: company/templates/company/manufacturer_part.html:114
#: company/templates/company/manufacturer_part.html:138
#: company/templates/company/manufacturer_part.html:239
#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: templates/js/translated/helpers.js:31 users/models.py:199
msgid "Delete"
-msgstr ""
+msgstr "删除"
#: company/templates/company/manufacturer_part.html:127
#: company/templates/company/manufacturer_part_navbar.html:11
@@ -2744,70 +2785,69 @@ msgstr ""
#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
#: part/templates/part/navbar.html:23
msgid "Parameters"
-msgstr ""
+msgstr "参数"
#: company/templates/company/manufacturer_part.html:133
#: part/templates/part/detail.html:162
#: templates/InvenTree/settings/category.html:26
#: templates/InvenTree/settings/part.html:63
msgid "New Parameter"
-msgstr ""
+msgstr "新建参数"
#: company/templates/company/manufacturer_part.html:138
msgid "Delete parameters"
-msgstr ""
+msgstr "删除参数"
#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: part/templates/part/detail.html:805
msgid "Add Parameter"
-msgstr ""
+msgstr "添加参数"
#: company/templates/company/manufacturer_part.html:224
msgid "Selected parameters will be deleted"
-msgstr ""
+msgstr "所选参数将被删除"
#: company/templates/company/manufacturer_part.html:236
msgid "Delete Parameters"
-msgstr ""
+msgstr "删除参数"
#: company/templates/company/manufacturer_part_navbar.html:26
msgid "Manufacturer Part Stock"
-msgstr ""
+msgstr "制造商商品库存"
#: company/templates/company/manufacturer_part_navbar.html:29
#: company/templates/company/navbar.html:39
#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
+#: part/templates/part/navbar.html:38 stock/api.py:52
#: 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:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
+#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
+#: templates/InvenTree/settings/navbar.html:107
+#: templates/InvenTree/settings/navbar.html:109
+#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
+#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
+#: templates/js/translated/stock.js:829 templates/navbar.html:32
msgid "Stock"
-msgstr ""
+msgstr "库存"
#: company/templates/company/manufacturer_part_navbar.html:33
msgid "Manufacturer Part Orders"
-msgstr ""
+msgstr "制造商商品订单"
#: company/templates/company/manufacturer_part_navbar.html:36
#: company/templates/company/supplier_part_navbar.html:22
msgid "Orders"
-msgstr ""
+msgstr "订单"
#: company/templates/company/navbar.html:17
#: company/templates/company/navbar.html:20
msgid "Manufactured Parts"
-msgstr ""
+msgstr "制造商商品"
#: company/templates/company/navbar.html:26
#: company/templates/company/navbar.html:29
msgid "Supplied Parts"
-msgstr ""
+msgstr "供应商商品"
#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
#: stock/templates/stock/location.html:119
@@ -2815,51 +2855,51 @@ msgstr ""
#: stock/templates/stock/location.html:148
#: stock/templates/stock/location_navbar.html:18
#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
+#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
msgid "Stock Items"
-msgstr ""
+msgstr "库存项"
#: company/templates/company/supplier_part.html:7
#: company/templates/company/supplier_part.html:24 stock/models.py:463
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
msgid "Supplier Part"
-msgstr ""
+msgstr "供应商商品"
#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: templates/js/translated/company.js:859
msgid "Edit supplier part"
-msgstr ""
+msgstr "编辑供应商商品"
#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: templates/js/translated/company.js:860
msgid "Delete supplier part"
-msgstr ""
+msgstr "删除供应商商品"
#: company/templates/company/supplier_part.html:60
msgid "Supplier Part Details"
-msgstr ""
+msgstr "供应商商品详细信息"
#: company/templates/company/supplier_part.html:131
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
-msgstr ""
+msgstr "供货商商品库存"
#: company/templates/company/supplier_part.html:140
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
-msgstr ""
+msgstr "供应商商品订单"
#: company/templates/company/supplier_part.html:147
#: part/templates/part/detail.html:56
msgid "Order Part"
-msgstr ""
+msgstr "订购商品"
#: company/templates/company/supplier_part.html:158
#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
msgid "Pricing Information"
-msgstr ""
+msgstr "价格信息"
#: company/templates/company/supplier_part.html:164
#: company/templates/company/supplier_part.html:265
@@ -2889,106 +2929,106 @@ msgstr ""
#: company/templates/company/supplier_part_navbar.html:26
msgid "Supplier Part Pricing"
-msgstr ""
+msgstr "供应商商品价格"
#: company/templates/company/supplier_part_navbar.html:29
msgid "Pricing"
-msgstr ""
+msgstr "定价"
#: company/views.py:50
msgid "New Supplier"
-msgstr ""
+msgstr "新增供应商"
#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
+#: templates/InvenTree/search.html:210 templates/navbar.html:42
msgid "Manufacturers"
-msgstr ""
+msgstr "制造商"
#: company/views.py:56
msgid "New Manufacturer"
-msgstr ""
+msgstr "新建制造商"
-#: company/views.py:61 templates/InvenTree/search.html:336
+#: company/views.py:61 templates/InvenTree/search.html:240
#: templates/navbar.html:53
msgid "Customers"
-msgstr ""
+msgstr "客户信息"
#: company/views.py:62
msgid "New Customer"
-msgstr ""
+msgstr "新建客户"
#: company/views.py:69
msgid "Companies"
-msgstr ""
+msgstr "公司"
#: company/views.py:70
msgid "New Company"
-msgstr ""
+msgstr "新建公司信息"
#: company/views.py:129 part/views.py:608
msgid "Download Image"
-msgstr ""
+msgstr "下载图片"
#: company/views.py:158 part/views.py:640
msgid "Image size exceeds maximum allowable size for download"
-msgstr ""
+msgstr "图像大小超过下载允许的最大尺寸"
#: company/views.py:165 part/views.py:647
#, python-brace-format
msgid "Invalid response: {code}"
-msgstr ""
+msgstr "无效响应: {code}"
#: company/views.py:174 part/views.py:656
msgid "Supplied URL is not a valid image file"
-msgstr ""
+msgstr "提供的 URL 不是一个有效的图片文件"
#: label/api.py:57 report/api.py:201
msgid "No valid objects provided to template"
-msgstr ""
+msgstr "没有为模板提供有效对象"
#: label/models.py:113
msgid "Label name"
-msgstr ""
+msgstr "标签名称"
#: label/models.py:120
msgid "Label description"
-msgstr ""
+msgstr "标签说明"
#: label/models.py:127 stock/forms.py:167
msgid "Label"
-msgstr ""
+msgstr "标签"
#: label/models.py:128
msgid "Label template file"
-msgstr ""
+msgstr "标签模板文件"
#: label/models.py:134 report/models.py:298
msgid "Enabled"
-msgstr ""
+msgstr "已启用"
#: label/models.py:135
msgid "Label template is enabled"
-msgstr ""
+msgstr "标签模板已启用"
#: label/models.py:140
msgid "Width [mm]"
-msgstr ""
+msgstr "宽度 [mm]"
#: label/models.py:141
msgid "Label width, specified in mm"
-msgstr ""
+msgstr "标注宽度,以毫米为单位。"
#: label/models.py:147
msgid "Height [mm]"
-msgstr ""
+msgstr "高度 [mm]"
#: label/models.py:148
msgid "Label height, specified in mm"
-msgstr ""
+msgstr "标注高度,以毫米为单位。"
#: label/models.py:154 report/models.py:291
msgid "Filename Pattern"
-msgstr ""
+msgstr "文件名样式"
#: label/models.py:155
msgid "Pattern for generating label filenames"
@@ -2996,51 +3036,47 @@ msgstr ""
#: label/models.py:258
msgid "Query filters (comma-separated list of key=value pairs),"
-msgstr ""
+msgstr "查询筛选器 (逗号分隔的键值对列表)"
#: label/models.py:259 label/models.py:319 label/models.py:366
#: report/models.py:322 report/models.py:457 report/models.py:495
msgid "Filters"
-msgstr ""
+msgstr "筛选器"
#: label/models.py:318
msgid "Query filters (comma-separated list of key=value pairs"
-msgstr ""
+msgstr "查询筛选器 (逗号分隔的键值对列表"
#: label/models.py:365
msgid "Part query filters (comma-separated value of key=value pairs)"
+msgstr "商品查询筛选器 (逗号分隔的键值对列表)"
+
+#: order/api.py:250
+msgid "Matching purchase order does not exist"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
-msgstr ""
-
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:27 order/templates/order/order_base.html:50
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:38 order/templates/order/order_base.html:57
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
+#: order/templates/order/sales_order_base.html:64
msgid "Cancel order"
-msgstr ""
+msgstr "取消订单"
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:71 order/templates/order/sales_order_base.html:61
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:97
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:103
msgid "Enter quantity of stock items"
msgstr ""
@@ -3058,26 +3094,26 @@ msgstr ""
#: order/models.py:175
msgid "User or group responsible for this order"
-msgstr ""
+msgstr "负责此订单的用户或群组"
#: order/models.py:180
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:247 order/models.py:548
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:252 order/models.py:563
msgid "Purchase order status"
msgstr ""
#: order/models.py:261
msgid "Company from which the items are being ordered"
-msgstr ""
+msgstr "订购该商品的公司"
#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: templates/js/translated/order.js:668
msgid "Supplier Reference"
msgstr ""
@@ -3109,190 +3145,190 @@ msgstr ""
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
#: order/models.py:318
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:428
msgid "Quantity must be an integer"
-msgstr ""
+msgstr "数量必须是整数"
-#: order/models.py:427
+#: order/models.py:432
msgid "Quantity must be a positive number"
-msgstr ""
+msgstr "数量必须大于0"
-#: order/models.py:551
+#: order/models.py:559
msgid "Company to which the items are being sold"
-msgstr ""
+msgstr "向其出售该商品的公司"
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:565
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:570
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:573 templates/js/translated/order.js:1079
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:580
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:624
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:721
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:727
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:729
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:759 order/models.py:847
+#: templates/js/translated/order.js:1131
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
+#: order/models.py:760 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:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
+#: templates/js/translated/stock.js:1568
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:781
msgid "Supplier part"
-msgstr ""
+msgstr "供应商商品"
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:788 order/templates/order/order_base.html:131
+#: order/templates/order/sales_order_base.html:138
+#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:789
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
+#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
+#: templates/js/translated/stock.js:1024
msgid "Purchase Price"
-msgstr ""
+msgstr "采购价格"
-#: order/models.py:789
+#: order/models.py:797
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:805
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:857 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
-msgstr ""
+msgstr "销售价格"
-#: order/models.py:844
+#: order/models.py:858
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:937 order/models.py:939
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:943
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:945
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:948
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:952
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:958
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:966
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:978
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:979
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:982
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:285
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:259
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:297
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:314
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:325
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:569
msgid "Sale price currency"
msgstr ""
@@ -3307,31 +3343,32 @@ msgstr ""
msgid "Print"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
+#: order/templates/order/order_base.html:42
+#: order/templates/order/sales_order_base.html:53
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:46
+#: order/templates/order/sales_order_base.html:57
msgid "Edit order information"
msgstr ""
-#: order/templates/order/order_base.html:51
+#: order/templates/order/order_base.html:54
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:64
-msgid "Export order to file"
-msgstr ""
-
#: order/templates/order/order_base.html:72
#: order/templates/order/po_navbar.html:12
msgid "Purchase Order Details"
msgstr ""
#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/sales_order_base.html:84
msgid "Order Reference"
msgstr ""
#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/sales_order_base.html:89
msgid "Order Status"
msgstr ""
@@ -3344,16 +3381,6 @@ msgstr ""
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-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 ""
@@ -3402,14 +3429,14 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_fields.html:28
#: part/templates/part/import_wizard/match_fields.html:35
msgid "File Fields"
-msgstr ""
+msgstr "文件字段"
#: order/templates/order/order_wizard/match_fields.html:42
#: part/templates/part/bom_upload/match_fields.html:42
#: part/templates/part/import_wizard/ajax_match_fields.html:35
#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
-msgstr ""
+msgstr "移除列"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/bom_upload/match_fields.html:60
@@ -3426,26 +3453,27 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
msgid "Remove row"
-msgstr ""
+msgstr "移除行"
#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/match_parts.html:12
#: part/templates/part/import_wizard/ajax_match_references.html:12
#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
-msgstr ""
+msgstr "提交数据中存在错误"
#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/match_parts.html:28
#: part/templates/part/import_wizard/ajax_match_references.html:21
#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
-msgstr ""
+msgstr "行"
#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
-msgstr ""
+msgstr "选择供应商商品"
#: order/templates/order/order_wizard/po_upload.html:11
msgid "Upload File for Purchase Order"
@@ -3457,7 +3485,7 @@ msgstr ""
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
-msgstr ""
+msgstr "步骤 %(step)s / %(count)s"
#: order/templates/order/order_wizard/po_upload.html:48
msgid "Order is already processed. Files cannot be uploaded."
@@ -3465,33 +3493,33 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:11
msgid "Step 1 of 2 - Select Part Suppliers"
-msgstr ""
+msgstr "步骤 1 / 2 - 选择商品供货商"
#: order/templates/order/order_wizard/select_parts.html:16
msgid "Select suppliers"
-msgstr ""
+msgstr "选择供应商"
#: order/templates/order/order_wizard/select_parts.html:20
msgid "No purchaseable parts selected"
-msgstr ""
+msgstr "未选择可购买的商品"
#: order/templates/order/order_wizard/select_parts.html:33
msgid "Select Supplier"
-msgstr ""
+msgstr "选择供应商"
#: order/templates/order/order_wizard/select_parts.html:57
msgid "No price"
-msgstr ""
+msgstr "暂无价格"
#: order/templates/order/order_wizard/select_parts.html:65
#, python-format
msgid "Select a supplier for %(name)s"
-msgstr ""
+msgstr "为 %(name)s选择一个供应商"
#: order/templates/order/order_wizard/select_parts.html:77
#: part/templates/part/set_category.html:32
msgid "Remove part"
-msgstr ""
+msgstr "移除商品"
#: order/templates/order/order_wizard/select_pos.html:8
msgid "Step 2 of 2 - Select Purchase Orders"
@@ -3502,7 +3530,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
msgid "Items"
msgstr ""
@@ -3522,7 +3550,7 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
@@ -3532,7 +3560,7 @@ msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:47
msgid "Received Items"
msgstr ""
@@ -3540,14 +3568,22 @@ msgstr ""
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:24
+#: order/templates/order/purchase_order_detail.html:212
#: order/templates/order/sales_order_detail.html:23
#: order/templates/order/sales_order_detail.html:177
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:67
#: order/templates/order/sales_order_detail.html:54
msgid "Order Notes"
msgstr ""
@@ -3555,69 +3591,26 @@ msgstr ""
#: order/templates/order/purchase_orders.html:24
#: order/templates/order/sales_orders.html:24
msgid "Print Order Reports"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
+msgstr "打印订单报表"
#: order/templates/order/sales_order_base.html:16
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:70
msgid "Packing List"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
+#: order/templates/order/sales_order_base.html:79
msgid "Sales Order Details"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:105
+#: templates/js/translated/order.js:1051
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:183
msgid "Edit Sales Order"
msgstr ""
@@ -3626,7 +3619,7 @@ msgstr ""
#: part/templates/part/bom_duplicate.html:12
#: stock/templates/stock/stockitem_convert.html:13
msgid "Warning"
-msgstr ""
+msgstr "警告"
#: order/templates/order/sales_order_cancel.html:9
msgid "Cancelling this order means that the order will no longer be editable."
@@ -3636,105 +3629,6 @@ msgstr ""
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-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."
msgstr ""
@@ -3759,10 +3653,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
#: order/templates/order/so_navbar.html:12
msgid "Sales Order Line Items"
msgstr ""
@@ -3775,181 +3665,161 @@ msgstr ""
msgid "Sales Order Attachments"
msgstr ""
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
-msgstr ""
+msgstr "取消订单"
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
-msgstr ""
+msgstr "确认取消订单"
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
-msgstr ""
+msgstr "无法取消订单"
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
-msgstr ""
+msgstr "取消销售订单"
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
+#: order/views.py:222
msgid "Ship Order"
msgstr ""
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
+#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
+#: part/templates/part/category.html:108 part/templates/part/category.html:122
+#: part/templates/part/category_navbar.html:21
+#: part/templates/part/category_navbar.html:24
+#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
+#: templates/InvenTree/settings/navbar.html:95
+#: templates/InvenTree/settings/navbar.html:97
+#: templates/js/translated/part.js:1165 templates/navbar.html:29
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "商品"
+
#: part/api.py:700
msgid "Must be greater than zero"
-msgstr ""
+msgstr "必须大于0"
#: part/api.py:704
msgid "Must be a valid quantity"
-msgstr ""
+msgstr "必须是有效的数量"
#: part/api.py:719
msgid "Specify location for initial part stock"
-msgstr ""
+msgstr "指定初始初始商品仓储地点"
#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
msgid "This field is required"
-msgstr ""
+msgstr "此字段为必填"
-#: part/bom.py:133 part/models.py:75 part/models.py:733
+#: part/bom.py:133 part/models.py:76 part/models.py:734
#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
msgid "Default Location"
-msgstr ""
+msgstr "默认仓储地点"
#: part/bom.py:134 part/templates/part/part_base.html:156
msgid "Available Stock"
-msgstr ""
+msgstr "可用库存"
#: part/forms.py:63
msgid "File Format"
-msgstr ""
+msgstr "文件格式"
#: part/forms.py:63
msgid "Select output file format"
-msgstr ""
+msgstr "选择输出文件格式"
#: part/forms.py:65
msgid "Cascading"
@@ -3961,7 +3831,7 @@ msgstr ""
#: part/forms.py:67
msgid "Levels"
-msgstr ""
+msgstr "等级"
#: part/forms.py:67
msgid "Select maximum number of BOM levels to export (0 = all levels)"
@@ -3969,37 +3839,37 @@ msgstr ""
#: part/forms.py:69
msgid "Include Parameter Data"
-msgstr ""
+msgstr "包含参数数据"
#: part/forms.py:69
msgid "Include part parameters data in exported BOM"
-msgstr ""
+msgstr "在导出的BOM 中包含商品参数"
#: part/forms.py:71
msgid "Include Stock Data"
-msgstr ""
+msgstr "包括库存数据"
#: part/forms.py:71
msgid "Include part stock data in exported BOM"
-msgstr ""
+msgstr "在导出 BOM 中包括库存数据"
#: part/forms.py:73
msgid "Include Manufacturer Data"
-msgstr ""
+msgstr "包括制造商数据"
#: part/forms.py:73
msgid "Include part manufacturer data in exported BOM"
-msgstr ""
+msgstr "在导出 BOM 中包含制造商数据"
#: part/forms.py:75
msgid "Include Supplier Data"
-msgstr ""
+msgstr "包含供应商数据"
#: part/forms.py:75
msgid "Include part supplier data in exported BOM"
-msgstr ""
+msgstr "在导出 BOM 中包含供应商数据"
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2254
msgid "Parent Part"
msgstr ""
@@ -4021,7 +3891,7 @@ msgstr ""
#: part/forms.py:127
msgid "Confirm that the BOM is correct"
-msgstr ""
+msgstr "确认BOM 正确"
#: part/forms.py:170
msgid "Related Part"
@@ -4029,7 +3899,7 @@ msgstr ""
#: part/forms.py:177
msgid "Select part category"
-msgstr ""
+msgstr "选择类别"
#: part/forms.py:226
msgid "Add parameter template to same level categories"
@@ -4043,391 +3913,387 @@ msgstr ""
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:77
msgid "Default location for parts in this category"
-msgstr ""
+msgstr "此类别商品的默认仓储地点"
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:80
msgid "Default keywords for parts in this category"
-msgstr ""
+msgstr "此类别商品的默认关键字"
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:90 part/models.py:2300
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
-msgstr ""
+msgstr "商品类别"
-#: part/models.py:90 part/templates/part/category.html:32
+#: part/models.py:91 part/templates/part/category.html:32
#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
#: templates/stats.html:84 users/models.py:40
msgid "Part Categories"
-msgstr ""
+msgstr "商品类别"
-#: part/models.py:383
+#: part/models.py:384
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:436 part/models.py:448
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:545
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:549
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:554
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:633
msgid "Duplicate IPN not allowed in part settings"
-msgstr ""
+msgstr "在商品设置中不允许重复的IPN"
-#: part/models.py:657
+#: part/models.py:658
msgid "Part name"
-msgstr ""
+msgstr "商品名称"
-#: part/models.py:664
+#: part/models.py:665
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:666
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:676
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:677
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:683
msgid "Part description"
-msgstr ""
+msgstr "商品描述"
-#: part/models.py:687 part/templates/part/category.html:82
+#: part/models.py:688 part/templates/part/category.html:82
#: part/templates/part/part_base.html:259
msgid "Keywords"
-msgstr ""
+msgstr "关键词"
-#: part/models.py:688
+#: part/models.py:689
msgid "Part keywords to improve visibility in search results"
-msgstr ""
+msgstr "提高搜索结果可见性的关键字"
-#: part/models.py:695 part/models.py:2295
+#: part/models.py:696 part/models.py:2299
#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: templates/InvenTree/settings/settings.html:169
+#: templates/js/translated/part.js:927
msgid "Category"
-msgstr ""
+msgstr "类别"
-#: part/models.py:696
+#: part/models.py:697
msgid "Part category"
-msgstr ""
+msgstr "商品类别"
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:702 part/templates/part/part_base.html:235
+#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:703
msgid "Internal Part Number"
-msgstr ""
+msgstr "内部商品编号"
-#: part/models.py:708
+#: part/models.py:709
msgid "Part revision or version number"
-msgstr ""
+msgstr "商品版本号"
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:710 part/templates/part/part_base.html:252
+#: report/models.py:200 templates/js/translated/part.js:532
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:732
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:779 part/templates/part/part_base.html:297
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:780
msgid "Default supplier part"
-msgstr ""
+msgstr "默认供应商商品"
-#: part/models.py:786
+#: part/models.py:787
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:788
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
-msgid "Minimum Stock"
-msgstr ""
-
#: part/models.py:793
+msgid "Minimum Stock"
+msgstr "最低库存"
+
+#: part/models.py:794
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:801
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:807
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:813
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:819
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:824
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:829
msgid "Can this part be sold to customers?"
-msgstr ""
+msgstr "此商品可以销售给客户吗?"
-#: part/models.py:832 templates/js/translated/table_filters.js:34
+#: part/models.py:833 templates/js/translated/table_filters.js:34
#: templates/js/translated/table_filters.js:82
#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:346
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:834
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:839
msgid "Is this a virtual part, such as a software product or license?"
-msgstr ""
+msgstr "这是一个虚拟商品,如软件产品或许可证吗?"
-#: part/models.py:843
+#: part/models.py:844
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:847
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:850
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:852
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:856
msgid "Creation User"
-msgstr ""
+msgstr "新建用户"
-#: part/models.py:1601
+#: part/models.py:1605
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2100
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2117
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2137 templates/js/translated/part.js:1216
+#: templates/js/translated/stock.js:535
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2138
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2143
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2144
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
+#: part/models.py:2149 templates/js/translated/part.js:1225
#: templates/js/translated/table_filters.js:254
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2150
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2155 templates/js/translated/part.js:1233
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2156
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2161 templates/js/translated/part.js:1240
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2162
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2173
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2209
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2217
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2224
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2256 part/models.py:2305 part/models.py:2306
+#: templates/InvenTree/settings/settings.html:164
msgid "Parameter Template"
-msgstr ""
+msgstr "参数模板"
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2258
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
msgid "Default Value"
-msgstr ""
+msgstr "默认值"
-#: part/models.py:2307
+#: part/models.py:2311
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2362
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2370
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2371
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2377
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2379 templates/js/translated/bom.js:275
+#: templates/js/translated/bom.js:335
msgid "Optional"
-msgstr ""
+msgstr "可选项"
-#: part/models.py:2358
+#: part/models.py:2379
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2382
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2383
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2386
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2389
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2391
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2395 templates/js/translated/bom.js:352
+#: templates/js/translated/bom.js:359
#: templates/js/translated/table_filters.js:68
msgid "Inherited"
-msgstr ""
+msgstr "继承项"
-#: part/models.py:2375
+#: part/models.py:2396
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2401 templates/js/translated/bom.js:344
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2402
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2487 stock/models.py:341
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2496 part/models.py:2498
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
-msgstr ""
-
-#: part/models.py:2599
+#: part/models.py:2620
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2624
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2656
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4492,7 +4358,7 @@ msgstr ""
#: part/templates/part/bom_upload/match_parts.html:29
msgid "Select Part"
-msgstr ""
+msgstr "选择商品"
#: part/templates/part/bom_upload/upload_file.html:13
#: part/templates/part/bom_upload/upload_file.html:16
@@ -4517,7 +4383,7 @@ msgstr ""
#: part/templates/part/bom_upload/upload_file.html:49
msgid "Each part must already exist in the database"
-msgstr ""
+msgstr "每个商品必须已经存在于数据库"
#: part/templates/part/bom_validate.html:6
#, python-format
@@ -4530,124 +4396,124 @@ msgstr ""
#: part/templates/part/category.html:33
msgid "All parts"
-msgstr ""
+msgstr "所有商品"
#: part/templates/part/category.html:38
msgid "Create new part category"
-msgstr ""
+msgstr "新建商品类别"
#: part/templates/part/category.html:44
msgid "Edit part category"
-msgstr ""
+msgstr "编辑商品类别"
#: part/templates/part/category.html:49
msgid "Delete part category"
-msgstr ""
+msgstr "删除类别"
#: part/templates/part/category.html:59 part/templates/part/category.html:98
msgid "Category Details"
-msgstr ""
+msgstr "类别详细信息"
#: part/templates/part/category.html:64
msgid "Category Path"
-msgstr ""
+msgstr "类别路径"
#: part/templates/part/category.html:69
msgid "Category Description"
-msgstr ""
+msgstr "类别说明"
#: part/templates/part/category.html:88 part/templates/part/category.html:175
#: part/templates/part/category_navbar.html:14
#: part/templates/part/category_navbar.html:17
msgid "Subcategories"
-msgstr ""
+msgstr "子类别"
#: part/templates/part/category.html:93
msgid "Parts (Including subcategories)"
-msgstr ""
+msgstr "商品 (包括子类别)"
#: part/templates/part/category.html:126
msgid "Export Part Data"
-msgstr ""
+msgstr "导出商品数据"
#: part/templates/part/category.html:127 part/templates/part/category.html:142
msgid "Export"
-msgstr ""
+msgstr "导出"
#: part/templates/part/category.html:130
msgid "Create new part"
-msgstr ""
+msgstr "新建商品"
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
msgid "New Part"
-msgstr ""
+msgstr "新商品"
#: part/templates/part/category.html:138
msgid "Set category"
-msgstr ""
+msgstr "设置类别"
#: part/templates/part/category.html:138
msgid "Set Category"
-msgstr ""
+msgstr "设置类别"
#: part/templates/part/category.html:141
msgid "Print Labels"
-msgstr ""
+msgstr "打印标签"
#: part/templates/part/category.html:142
msgid "Export Data"
-msgstr ""
+msgstr "导出数据"
#: part/templates/part/category.html:146
msgid "View list display"
-msgstr ""
+msgstr "列表视图"
#: part/templates/part/category.html:149
msgid "View grid display"
-msgstr ""
+msgstr "网格视图"
#: part/templates/part/category.html:165
msgid "Part Parameters"
-msgstr ""
+msgstr "商品参数"
#: part/templates/part/category.html:254
msgid "Create Part Category"
-msgstr ""
+msgstr "创建商品类别"
#: part/templates/part/category.html:281
msgid "Create Part"
-msgstr ""
+msgstr "创建商品"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
-msgstr ""
+msgstr "您确定要删除此类别吗?"
#: part/templates/part/category_delete.html:8
#, python-format
msgid "This category contains %(count)s child categories"
-msgstr ""
+msgstr "此类别包含 %(count)s 个子类别"
#: part/templates/part/category_delete.html:9
msgid "If this category is deleted, these child categories will be moved to the"
-msgstr ""
+msgstr "如果删除此类别,则这些子类别将被移动到以下位置:"
#: part/templates/part/category_delete.html:11
msgid "category"
-msgstr ""
+msgstr "类别"
#: part/templates/part/category_delete.html:13
msgid "top level Parts category"
-msgstr ""
+msgstr "顶层商品类别"
#: part/templates/part/category_delete.html:25
#, python-format
msgid "This category contains %(count)s parts"
-msgstr ""
+msgstr "此类别包含 %(count)s 个商品"
#: 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"
-msgstr ""
+msgstr "如果删除此类别,这些商品将移至其父类别 %(path)s"
#: part/templates/part/category_delete.html:29
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
@@ -4656,11 +4522,11 @@ msgstr ""
#: part/templates/part/category_navbar.html:29
#: part/templates/part/category_navbar.html:32
msgid "Import Parts"
-msgstr ""
+msgstr "导入商品"
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
msgid "Duplicate Part"
-msgstr ""
+msgstr "复制部件"
#: part/templates/part/copy_part.html:10
#, python-format
@@ -4684,7 +4550,7 @@ msgstr ""
#: part/templates/part/detail.html:16
msgid "Part Stock"
-msgstr ""
+msgstr "商品库存"
#: part/templates/part/detail.html:21
#, python-format
@@ -4759,15 +4625,15 @@ msgstr ""
#: part/templates/part/detail.html:283
msgid "Part Suppliers"
-msgstr ""
+msgstr "商品供应商"
#: part/templates/part/detail.html:305
msgid "Part Manufacturers"
-msgstr ""
+msgstr "商品制造商"
#: part/templates/part/detail.html:317
msgid "Delete manufacturer parts"
-msgstr ""
+msgstr "删除制造商商品"
#: part/templates/part/detail.html:502
msgid "Delete selected BOM items?"
@@ -4785,34 +4651,26 @@ msgstr ""
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:755
msgid "Edit Part Notes"
-msgstr ""
+msgstr "编辑商品注释"
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:907
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:919
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:931
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1020
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4824,7 +4682,7 @@ msgstr ""
#: part/templates/part/import_wizard/part_upload.html:14
msgid "Import Parts from File"
-msgstr ""
+msgstr "从文件导入商品"
#: part/templates/part/navbar.html:30
msgid "Variants"
@@ -4844,7 +4702,7 @@ msgstr ""
#: part/templates/part/part_app_base.html:12
msgid "Part List"
-msgstr ""
+msgstr "商品列表"
#: part/templates/part/part_base.html:35
msgid "Part is a template part (variants can be made from this part)"
@@ -4852,11 +4710,11 @@ msgstr ""
#: part/templates/part/part_base.html:38
msgid "Part can be assembled from other parts"
-msgstr ""
+msgstr "商品可以由其他部件组装"
#: part/templates/part/part_base.html:41
msgid "Part can be used in assemblies"
-msgstr ""
+msgstr "商品可以用于组装成品"
#: part/templates/part/part_base.html:44
msgid "Part stock is tracked by serial number"
@@ -4864,25 +4722,25 @@ msgstr ""
#: part/templates/part/part_base.html:47
msgid "Part can be purchased from external suppliers"
-msgstr ""
+msgstr "商品可以从外部供应商处购买"
#: part/templates/part/part_base.html:50
msgid "Part can be sold to customers"
-msgstr ""
+msgstr "商品可以销售给客户"
#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
msgid "Part is virtual (not a physical part)"
-msgstr ""
+msgstr "商品是虚拟的(不是实体零件)"
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
+#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
+#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
+#: templates/js/translated/part.js:520
msgid "Inactive"
msgstr ""
#: part/templates/part/part_base.html:73
msgid "Star this part"
-msgstr ""
+msgstr "标记此商品"
#: part/templates/part/part_base.html:80
#: stock/templates/stock/item_base.html:75
@@ -4900,7 +4758,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:93
#: stock/templates/stock/location.html:54
msgid "Print Label"
-msgstr ""
+msgstr "打印标签"
#: part/templates/part/part_base.html:89
msgid "Show pricing information"
@@ -4914,7 +4772,7 @@ msgstr ""
#: part/templates/part/part_base.html:102
msgid "Count part stock"
-msgstr ""
+msgstr "清点商品库存"
#: part/templates/part/part_base.html:108
msgid "Transfer part stock"
@@ -4926,15 +4784,15 @@ msgstr ""
#: part/templates/part/part_base.html:128
msgid "Duplicate part"
-msgstr ""
+msgstr "重复的商品"
#: part/templates/part/part_base.html:131
msgid "Edit part"
-msgstr ""
+msgstr "编辑商品"
#: part/templates/part/part_base.html:134
msgid "Delete part"
-msgstr ""
+msgstr "删除商品"
#: part/templates/part/part_base.html:146
#, python-format
@@ -4942,10 +4800,16 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:161
+#: templates/js/translated/model_renderers.js:169
+#: templates/js/translated/order.js:1503
#: templates/js/translated/table_filters.js:166
msgid "In Stock"
msgstr ""
+#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+msgid "On Order"
+msgstr ""
+
#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
msgid "Required for Build Orders"
msgstr ""
@@ -4958,37 +4822,37 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
+#: templates/js/translated/part.js:964
msgid "Building"
msgstr ""
#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
+#: part/templates/part/part_base.html:531
+#: part/templates/part/part_base.html:557
msgid "Show Part Details"
-msgstr ""
+msgstr "显示商品详细信息"
#: part/templates/part/part_base.html:283
msgid "Latest Serial Number"
msgstr ""
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:445
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
+#: part/templates/part/part_base.html:526
+#: part/templates/part/part_base.html:551
msgid "Hide Part Details"
-msgstr ""
+msgstr "隐藏商品详细信息"
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
@@ -5013,7 +4877,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:327
msgid "No supplier pricing available"
msgstr ""
@@ -5032,7 +4896,7 @@ msgstr ""
#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86
msgid "Note: BOM pricing is incomplete for this part"
-msgstr ""
+msgstr "注:此商品BOM价格不完整。"
#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93
msgid "No BOM pricing available"
@@ -5045,38 +4909,45 @@ msgstr ""
#: part/templates/part/part_pricing.html:128
#: part/templates/part/prices.html:134
msgid "No pricing information is available for this part."
-msgstr ""
+msgstr "此商品无价格信息可用。"
#: part/templates/part/part_thumb.html:20
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
#, python-format
-msgid "Are you sure you want to delete part '%(full_name)s'?"
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:17
+#, python-format
+msgid "Are you sure you want to delete part '%(full_name)s'?"
+msgstr "您确定要删除商品 '%(full_name)s '吗?"
+
+#: part/templates/part/partial_delete.html:22
#, 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
+#: part/templates/part/partial_delete.html:32
#, 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
+#: part/templates/part/partial_delete.html:43
#, 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
+#: part/templates/part/partial_delete.html:54
#, 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
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5109,7 +4980,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
msgid "Supplier Cost"
msgstr ""
@@ -5149,10 +5020,11 @@ msgstr ""
#: part/templates/part/set_category.html:9
msgid "Set category for the following parts"
-msgstr ""
+msgstr "为以下商品设置类别"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
+#: templates/js/translated/model_renderers.js:167
+#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
msgid "No Stock"
msgstr ""
@@ -5183,12 +5055,12 @@ msgstr ""
#: part/views.py:160
msgid "Set Part Category"
-msgstr ""
+msgstr "设置商品类别"
#: part/views.py:210
#, python-brace-format
msgid "Set category for {n} parts"
-msgstr ""
+msgstr "为 {n} 个商品设置类别"
#: part/views.py:270
msgid "Match References"
@@ -5200,19 +5072,19 @@ msgstr ""
#: part/views.py:585
msgid "Part QR Code"
-msgstr ""
+msgstr "商品二维码"
#: part/views.py:687
msgid "Select Part Image"
-msgstr ""
+msgstr "选择商品图像"
#: part/views.py:713
msgid "Updated part image"
-msgstr ""
+msgstr "更新商品图像"
#: part/views.py:716
msgid "Part image not found"
-msgstr ""
+msgstr "未找到商品图像"
#: part/views.py:728
msgid "Duplicate BOM"
@@ -5236,19 +5108,19 @@ msgstr ""
#: part/views.py:884
msgid "Match Parts"
-msgstr ""
+msgstr "匹配商品"
#: part/views.py:1272
msgid "Confirm Part Deletion"
-msgstr ""
+msgstr "确认删除商品"
#: part/views.py:1279
msgid "Part was deleted"
-msgstr ""
+msgstr "商品已删除"
#: part/views.py:1288
msgid "Part Pricing"
-msgstr ""
+msgstr "商品价格"
#: part/views.py:1437
msgid "Create Part Parameter Template"
@@ -5262,29 +5134,29 @@ msgstr ""
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1502 templates/js/translated/part.js:308
msgid "Edit Part Category"
-msgstr ""
+msgstr "编辑商品类别"
#: part/views.py:1540
msgid "Delete Part Category"
-msgstr ""
+msgstr "删除商品类别"
#: part/views.py:1546
msgid "Part category was deleted"
-msgstr ""
+msgstr "商品类别已删除"
#: part/views.py:1555
msgid "Create Category Parameter Template"
-msgstr ""
+msgstr "创建类别参数模板"
#: part/views.py:1656
msgid "Edit Category Parameter Template"
-msgstr ""
+msgstr "编辑类别参数模板"
#: part/views.py:1712
msgid "Delete Category Parameter Template"
-msgstr ""
+msgstr "删除类别参数模板"
#: part/views.py:1734
msgid "Added new price break"
@@ -5344,7 +5216,7 @@ msgstr ""
#: report/models.py:423
msgid "Part Filters"
-msgstr ""
+msgstr "商品过滤器"
#: report/models.py:424
msgid "Part query filters (comma-separated list of key=value pairs"
@@ -5400,17 +5272,17 @@ msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1804
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1810
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
msgid "Date"
msgstr ""
@@ -5422,51 +5294,9 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
-msgstr ""
-
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: templates/js/translated/stock.js:946
msgid "Expiry Date"
msgstr ""
@@ -5533,7 +5363,7 @@ msgstr ""
#: stock/models.py:358
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
-msgstr ""
+msgstr "商品类型 ('{pf}') 必须是 {pe}"
#: stock/models.py:368 stock/models.py:377
msgid "Quantity must be 1 for item with a serial number"
@@ -5569,7 +5399,7 @@ msgstr ""
#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
-msgstr ""
+msgstr "仓储地点"
#: stock/models.py:472
msgid "Where is this stock item located?"
@@ -5678,38 +5508,54 @@ msgstr ""
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1724
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1781
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1787
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1805
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1811 templates/js/translated/table_filters.js:244
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1817
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1824
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1830
msgid "Test notes"
msgstr ""
+#: stock/serializers.py:424
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:452
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:462
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/serializers.py:554
+msgid "Destination stock location"
+msgstr ""
+
#: stock/templates/stock/item.html:17
msgid "Stock Tracking Information"
msgstr ""
@@ -5747,7 +5593,7 @@ msgstr ""
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:125 stock/views.py:511
msgid "Install Stock Item"
msgstr ""
@@ -5865,7 +5711,7 @@ msgstr ""
#: stock/templates/stock/item_base.html:180
msgid "This stock item is in production and cannot be edited."
-msgstr ""
+msgstr "此库存项目正在生产中,无法编辑。"
#: stock/templates/stock/item_base.html:181
msgid "Edit the stock item from the build view."
@@ -5910,9 +5756,9 @@ msgid "next page"
msgstr ""
#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: templates/js/translated/build.js:658
msgid "No location set"
-msgstr ""
+msgstr "未设置仓储地点"
#: stock/templates/stock/item_base.html:310
msgid "Barcode Identifier"
@@ -5937,7 +5783,7 @@ msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: templates/js/translated/stock.js:959
msgid "Last Updated"
msgstr ""
@@ -6013,39 +5859,43 @@ 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."
-msgstr ""
+msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。"
#: stock/templates/stock/location.html:37
msgid "All stock items"
msgstr ""
+#: stock/templates/stock/location.html:42
+msgid "Create new stock location"
+msgstr "新建仓储地点"
+
#: stock/templates/stock/location.html:55
msgid "Check-in Items"
msgstr ""
#: stock/templates/stock/location.html:83
msgid "Location actions"
-msgstr ""
+msgstr "仓储地操作"
#: stock/templates/stock/location.html:85
msgid "Edit location"
-msgstr ""
+msgstr "编辑仓储地"
#: stock/templates/stock/location.html:87
msgid "Delete location"
-msgstr ""
+msgstr "删除仓储地"
#: stock/templates/stock/location.html:99
msgid "Location Details"
-msgstr ""
+msgstr "仓储地详细信息"
#: stock/templates/stock/location.html:104
msgid "Location Path"
-msgstr ""
+msgstr "仓储地路径"
#: stock/templates/stock/location.html:109
msgid "Location Description"
-msgstr ""
+msgstr "仓储地描述信息"
#: stock/templates/stock/location.html:114
#: stock/templates/stock/location.html:155
@@ -6058,26 +5908,30 @@ msgstr ""
msgid "Stock Details"
msgstr ""
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
-msgstr ""
+msgstr "仓储地点"
#: stock/templates/stock/location.html:162 templates/stock_table.html:37
msgid "Printing Actions"
-msgstr ""
+msgstr "打印操作"
#: stock/templates/stock/location.html:166 templates/stock_table.html:41
msgid "Print labels"
-msgstr ""
+msgstr "打印标签"
+
+#: stock/templates/stock/location.html:250
+msgid "New Location"
+msgstr "新建仓储地点"
#: stock/templates/stock/location.html:251
msgid "Create new location"
-msgstr ""
+msgstr "新建仓储地点"
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
-msgstr ""
+msgstr "确实要删除此仓储地点吗?"
#: stock/templates/stock/navbar.html:11
msgid "Stock Item Tracking"
@@ -6111,7 +5965,7 @@ msgstr ""
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
msgid "Convert Stock Item"
msgstr ""
@@ -6132,104 +5986,104 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:158
msgid "Edit Stock Location"
-msgstr ""
+msgstr "编辑仓储地点"
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
+#: stock/views.py:1375
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:280
msgid "Stock Location QR code"
-msgstr ""
+msgstr "仓储地点二维码"
-#: stock/views.py:322
+#: stock/views.py:299
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:308
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:332
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:341
msgid "Specify a valid location"
-msgstr ""
+msgstr "指定一个有效仓储地点"
-#: stock/views.py:375
+#: stock/views.py:352
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:363
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:380
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:485
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:660
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:757 templates/js/translated/stock.js:321
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:768
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:790
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:936
msgid "Create new Stock Location"
-msgstr ""
+msgstr "新建仓储地点"
-#: stock/views.py:1050
+#: stock/views.py:1027
msgid "Serialize Stock"
msgstr ""
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1120
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1262
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1344
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1444
msgid "Delete Stock Location"
-msgstr ""
+msgstr "删除仓储地点"
-#: stock/views.py:1480
+#: stock/views.py:1457
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1468
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1475
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1484
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6255,11 +6109,11 @@ msgstr ""
#: templates/InvenTree/index.html:105
msgid "Starred Parts"
-msgstr ""
+msgstr "已加星标商品"
#: templates/InvenTree/index.html:115
msgid "Latest Parts"
-msgstr ""
+msgstr "最近商品"
#: templates/InvenTree/index.html:126
msgid "BOM Waiting Validation"
@@ -6313,49 +6167,41 @@ msgstr ""
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
-msgstr ""
+msgstr "条形码设置"
#: templates/InvenTree/settings/build.html:8
msgid "Build Order Settings"
-msgstr ""
+msgstr "生产订单设置"
#: templates/InvenTree/settings/category.html:7
msgid "Category Settings"
-msgstr ""
+msgstr "类别设置"
#: templates/InvenTree/settings/currencies.html:8
msgid "Currency Settings"
-msgstr ""
+msgstr "货币设置"
#: templates/InvenTree/settings/currencies.html:23
msgid "Base Currency"
-msgstr ""
+msgstr "基础货币"
#: templates/InvenTree/settings/currencies.html:27
msgid "Exchange Rates"
-msgstr ""
+msgstr "汇率"
#: templates/InvenTree/settings/currencies.html:37
msgid "Last Update"
-msgstr ""
+msgstr "上次更新"
#: templates/InvenTree/settings/currencies.html:43
msgid "Never"
-msgstr ""
+msgstr "从不"
#: templates/InvenTree/settings/currencies.html:48
msgid "Update Now"
-msgstr ""
+msgstr "立即更新"
#: templates/InvenTree/settings/global.html:9
msgid "Server Settings"
@@ -6363,213 +6209,301 @@ msgstr ""
#: templates/InvenTree/settings/header.html:7
msgid "Setting"
+msgstr "设置"
+
+#: templates/InvenTree/settings/login.html:9
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/navbar.html:12
#: templates/InvenTree/settings/user_settings.html:9
msgid "User Settings"
-msgstr ""
+msgstr "用户设置"
#: templates/InvenTree/settings/navbar.html:15
#: templates/InvenTree/settings/navbar.html:17
msgid "Account"
-msgstr ""
+msgstr "帐户"
#: templates/InvenTree/settings/navbar.html:21
#: templates/InvenTree/settings/navbar.html:23
msgid "Home Page"
-msgstr ""
+msgstr "主页"
#: templates/InvenTree/settings/navbar.html:27
#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
+#: templates/js/translated/tables.js:375 templates/search_form.html:6
#: templates/search_form.html:8
msgid "Search"
-msgstr ""
+msgstr "搜索"
#: templates/InvenTree/settings/navbar.html:33
#: templates/InvenTree/settings/navbar.html:35
msgid "Labels"
-msgstr ""
+msgstr "标签"
#: templates/InvenTree/settings/navbar.html:39
#: templates/InvenTree/settings/navbar.html:41
msgid "Reports"
+msgstr "报表"
+
+#: templates/InvenTree/settings/navbar.html:45
+#: templates/InvenTree/settings/navbar.html:47
+msgid "Forms"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
+#: templates/InvenTree/settings/navbar.html:52
+#: templates/InvenTree/settings/navbar.html:54
+#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
msgid "Settings"
-msgstr ""
+msgstr "设置"
-#: templates/InvenTree/settings/navbar.html:56
+#: templates/InvenTree/settings/navbar.html:62
msgid "InvenTree Settings"
-msgstr ""
+msgstr "InventTree 设置"
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
+#: templates/InvenTree/settings/navbar.html:65
+#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
msgid "Server"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
+#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
+msgid "Login"
msgstr ""
#: templates/InvenTree/settings/navbar.html:77
#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
-msgstr ""
+msgid "Barcodes"
+msgstr "条形码"
+
+#: templates/InvenTree/settings/navbar.html:83
+#: templates/InvenTree/settings/navbar.html:85
+msgid "Currencies"
+msgstr "币种"
#: templates/InvenTree/settings/navbar.html:89
#: templates/InvenTree/settings/navbar.html:91
+msgid "Reporting"
+msgstr "报表"
+
+#: templates/InvenTree/settings/navbar.html:101
+#: templates/InvenTree/settings/navbar.html:103
msgid "Categories"
-msgstr ""
+msgstr "类别管理"
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
-msgstr ""
+msgstr "商品设置"
#: templates/InvenTree/settings/part.html:12
msgid "Part Options"
-msgstr ""
+msgstr "商品选项"
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
-msgstr ""
+msgstr "商品导入"
#: templates/InvenTree/settings/part.html:46
msgid "Import Part"
-msgstr ""
+msgstr "导入商品"
#: templates/InvenTree/settings/part.html:59
msgid "Part Parameter Templates"
-msgstr ""
+msgstr "商品参数模板"
#: templates/InvenTree/settings/po.html:9
msgid "Purchase Order Settings"
-msgstr ""
+msgstr "采购订单设置"
#: templates/InvenTree/settings/report.html:10
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
-msgstr ""
+msgstr "报表设置"
#: templates/InvenTree/settings/setting.html:29
msgid "No value set"
-msgstr ""
+msgstr "未设置值"
#: templates/InvenTree/settings/setting.html:41
msgid "Edit setting"
-msgstr ""
+msgstr "编辑设置"
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:154
msgid "No category parameter templates found"
-msgstr ""
+msgstr "未找到类别参数模板"
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:176
+#: templates/InvenTree/settings/settings.html:275
msgid "Edit Template"
-msgstr ""
+msgstr "编辑模板"
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:177
+#: templates/InvenTree/settings/settings.html:276
msgid "Delete Template"
-msgstr ""
+msgstr "删除模板"
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:255
msgid "No part parameter templates found"
-msgstr ""
+msgstr "未找到商品参数模板"
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
-msgstr ""
+msgstr "销售订单设置"
#: templates/InvenTree/settings/stock.html:7
msgid "Stock Settings"
-msgstr ""
+msgstr "库存设置"
-#: templates/InvenTree/settings/user.html:9
+#: templates/InvenTree/settings/user.html:11
msgid "Account Settings"
-msgstr ""
+msgstr "帐户设置"
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:19
#: templates/js/translated/helpers.js:26
msgid "Edit"
-msgstr ""
+msgstr "编辑"
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:21
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
-msgid "Username"
-msgstr ""
+msgstr "更改密码"
#: templates/InvenTree/settings/user.html:28
-msgid "First Name"
-msgstr ""
+msgid "Username"
+msgstr "用户名"
#: templates/InvenTree/settings/user.html:32
-msgid "Last Name"
-msgstr ""
+msgid "First Name"
+msgstr "名字"
#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
-msgstr ""
+msgid "Last Name"
+msgstr "姓氏"
#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+msgid "E-Mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:47
+msgid "The following e-mail addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:61
+msgid "Verified"
msgstr ""
#: templates/InvenTree/settings/user.html:63
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:65
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:71
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:72
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:130
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:80
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:81
+msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:88
+msgid "Add E-mail Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Add E-mail"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:100
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:105
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:138
+msgid "You currently have no social network accounts connected to this account."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:142
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:153
+msgid "Theme Settings"
+msgstr "主题设置"
+
+#: templates/InvenTree/settings/user.html:174
msgid "Set Theme"
-msgstr ""
+msgstr "设置主题"
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:181
msgid "Language Settings"
-msgstr ""
+msgstr "语言设置"
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:200
#, python-format
msgid "%(lang_translated)s%% translated"
-msgstr ""
+msgstr "%(lang_translated)s%% 已翻译"
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:202
msgid "No translations available"
-msgstr ""
+msgstr "无可用翻译"
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:209
msgid "Set Language"
-msgstr ""
+msgstr "设置语言"
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:214
msgid "Help the translation efforts!"
-msgstr ""
+msgstr "帮助翻译工作!"
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:215
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
+msgstr "InventTree web 应用程序的本地语言翻译是 社区通过crowdin贡献。欢迎并鼓励提交信息。"
+
+#: templates/InvenTree/settings/user.html:223
+msgid "Do you really want to remove the selected e-mail address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_forms.html:9
+msgid "Form Settings"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
-msgstr ""
+msgstr "主页设置"
#: templates/InvenTree/settings/user_labels.html:9
msgid "Label Settings"
-msgstr ""
+msgstr "标签设置"
#: templates/InvenTree/settings/user_search.html:9
msgid "Search Settings"
-msgstr ""
+msgstr "搜索设置"
#: templates/about.html:13
msgid "InvenTree Version Information"
@@ -6641,11 +6575,108 @@ msgstr ""
#: templates/about.html:107 templates/js/translated/modals.js:50
#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
+#: templates/js/translated/modals.js:982 templates/modals.html:29
#: templates/modals.html:54
msgid "Close"
msgstr ""
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm E-mail Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgstr ""
+
+#: templates/account/login.html:5 templates/account/login.html:14
+#: templates/account/login.html:36
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:19
+#, python-format
+msgid "Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:23
+#, python-format
+msgid "If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:38
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:45
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:17
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:17
+msgid "change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:20
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6675,13 +6706,13 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
msgid "Select Stock Items"
-msgstr ""
+msgstr "选择库存项"
#: templates/js/report.js:99 templates/js/translated/report.js:119
msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
+msgstr "在打印报表之前必须选择库存项目"
#: templates/js/report.js:116 templates/js/report.js:169
#: templates/js/report.js:223 templates/js/report.js:277
@@ -6689,7 +6720,7 @@ msgstr ""
#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
msgid "No Reports Found"
-msgstr ""
+msgstr "没有找到报表"
#: templates/js/report.js:117 templates/js/translated/report.js:137
msgid "No report templates found which match selected stock item(s)"
@@ -6701,20 +6732,20 @@ msgstr ""
#: templates/js/report.js:153 templates/js/translated/report.js:173
msgid "Build(s) must be selected before printing reports"
-msgstr ""
+msgstr "打印报表前必须选择Build(s)"
#: templates/js/report.js:170 templates/js/translated/report.js:190
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
-msgstr ""
+msgstr "选择商品"
#: templates/js/report.js:206 templates/js/translated/report.js:226
msgid "Part(s) must be selected before printing reports"
-msgstr ""
+msgstr "打印报表前必须选择商品"
#: templates/js/report.js:224 templates/js/translated/report.js:244
msgid "No report templates found which match selected part(s)"
@@ -6741,11 +6772,11 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
msgid "No response from the InvenTree server"
msgstr ""
@@ -6757,35 +6788,35 @@ msgstr ""
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
msgid "Connection timeout while requesting data from server"
msgstr ""
@@ -6819,11 +6850,11 @@ msgstr ""
#: templates/js/translated/barcode.js:32
msgid "Enter barcode data"
-msgstr ""
+msgstr "输入条形码数据"
#: templates/js/translated/barcode.js:36
msgid "Barcode"
-msgstr ""
+msgstr "条形码"
#: templates/js/translated/barcode.js:54
msgid "Enter optional notes for stock transfer"
@@ -6842,7 +6873,7 @@ msgid "Unknown response from server"
msgstr ""
#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "Invalid server response"
msgstr ""
@@ -6852,7 +6883,7 @@ msgstr ""
#: templates/js/translated/barcode.js:281 templates/navbar.html:65
msgid "Scan Barcode"
-msgstr ""
+msgstr "扫描条形码"
#: templates/js/translated/barcode.js:292
msgid "No URL in response"
@@ -6870,7 +6901,7 @@ msgstr ""
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
msgid "Remove stock item"
msgstr ""
@@ -6912,157 +6943,223 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
+#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:287
+#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
+#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
+msgid "Available"
+msgstr "空闲"
+
+#: templates/js/translated/bom.js:307
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:294
+#: templates/js/translated/bom.js:314
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
+#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:402
+#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
+#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:423
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:404
+#: templates/js/translated/bom.js:425
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
+#: templates/js/translated/build.js:1593
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
+#: templates/js/translated/build.js:71
msgid "Edit Build Order"
msgstr ""
-#: templates/js/translated/build.js:95
+#: templates/js/translated/build.js:105
msgid "Create Build Order"
msgstr ""
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
+#: templates/js/translated/build.js:138
+msgid "Allocate stock items to this build output"
msgstr ""
-#: templates/js/translated/build.js:135
+#: templates/js/translated/build.js:146
msgid "Unallocate stock from build output"
msgstr ""
-#: templates/js/translated/build.js:145
+#: templates/js/translated/build.js:155
msgid "Complete build output"
msgstr ""
-#: templates/js/translated/build.js:154
+#: templates/js/translated/build.js:164
msgid "Delete build output"
msgstr ""
-#: templates/js/translated/build.js:249
+#: templates/js/translated/build.js:265
msgid "No build order allocations found"
msgstr ""
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
+#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
msgid "Location not specified"
+msgstr "未指定仓储地点"
+
+#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
+#: templates/js/translated/order.js:1292
+msgid "Edit stock allocation"
msgstr ""
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
+#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
+#: templates/js/translated/order.js:1293
+msgid "Delete stock allocation"
msgstr ""
-#: templates/js/translated/build.js:702
+#: templates/js/translated/build.js:695
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:705
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:718
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/build.js:739
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
+#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
+#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
+#: templates/js/translated/order.js:1567
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
#: templates/stock_table.html:59
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:880
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:949
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:963
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:992
+msgid "Confirm stock allocation"
+msgstr "确认库存分配"
+
+#: templates/js/translated/build.js:993
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1004
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1048
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1172
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
+#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
+#: templates/js/translated/stock.js:1456
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1209
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
msgid "No user information"
-msgstr ""
+msgstr "没有用户信息"
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1282
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1333
msgid "No parts allocated for"
msgstr ""
#: templates/js/translated/company.js:65
msgid "Add Manufacturer"
-msgstr ""
+msgstr "添加制造商"
#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
msgid "Add Manufacturer Part"
-msgstr ""
+msgstr "添加制造商商品"
#: templates/js/translated/company.js:99
msgid "Edit Manufacturer Part"
-msgstr ""
+msgstr "编辑制造商商品"
#: templates/js/translated/company.js:108
msgid "Delete Manufacturer Part"
-msgstr ""
+msgstr "删除制造商商品"
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
msgid "Add Supplier"
-msgstr ""
+msgstr "添加供应商"
#: templates/js/translated/company.js:192
msgid "Add Supplier Part"
-msgstr ""
+msgstr "添加供应商商品"
#: templates/js/translated/company.js:207
msgid "Edit Supplier Part"
-msgstr ""
+msgstr "编辑供应商商品"
#: templates/js/translated/company.js:217
msgid "Delete Supplier Part"
-msgstr ""
+msgstr "删除供应商商品"
#: templates/js/translated/company.js:264
msgid "Edit Company"
-msgstr ""
+msgstr "编辑公司信息"
#: templates/js/translated/company.js:285
msgid "Add new Company"
-msgstr ""
+msgstr "增加新的公司信息"
#: templates/js/translated/company.js:362
msgid "Parts Supplied"
@@ -7074,7 +7171,7 @@ msgstr ""
#: templates/js/translated/company.js:385
msgid "No company information found"
-msgstr ""
+msgstr "未找到该公司信息"
#: templates/js/translated/company.js:404
msgid "The following manufacturer parts will be deleted"
@@ -7082,75 +7179,75 @@ msgstr ""
#: templates/js/translated/company.js:421
msgid "Delete Manufacturer Parts"
-msgstr ""
+msgstr "删除制造商商品"
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:476
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:496
+#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:512
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:500
+#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
+#: templates/js/translated/part.js:516
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
msgid "No parameters found"
-msgstr ""
+msgstr "无指定参数"
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
msgid "Edit parameter"
-msgstr ""
+msgstr "编辑参数"
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
msgid "Delete parameter"
-msgstr ""
+msgstr "删除参数"
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
msgid "Edit Parameter"
-msgstr ""
+msgstr "编辑参数"
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
msgid "Delete Parameter"
-msgstr ""
+msgstr "删除参数"
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:733
msgid "No supplier parts found"
-msgstr ""
+msgstr "未找到供应商商品"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:407
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:408
msgid "false"
msgstr ""
#: templates/js/translated/filters.js:204
msgid "Select filter"
-msgstr ""
+msgstr "选择筛选项"
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:284
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:286
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:289
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:317
msgid "Create filter"
msgstr ""
@@ -7175,16 +7272,20 @@ msgstr ""
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
+#: templates/js/translated/forms.js:968 templates/modals.html:21
#: templates/modals.html:47
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1323
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1525
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1742
msgid "Clear input"
msgstr ""
@@ -7198,56 +7299,56 @@ msgstr ""
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
-msgstr ""
+msgstr "打印标签前必须选择库存项目"
#: templates/js/translated/label.js:48 templates/js/translated/label.js:98
#: templates/js/translated/label.js:153
msgid "No Labels Found"
-msgstr ""
+msgstr "未找到标签"
#: templates/js/translated/label.js:49
msgid "No labels found which match selected stock item(s)"
-msgstr ""
+msgstr "没有找到与选定的库存项匹配的标签"
#: templates/js/translated/label.js:80
msgid "Select Stock Locations"
-msgstr ""
+msgstr "选择仓储地点"
#: templates/js/translated/label.js:81
msgid "Stock location(s) must be selected before printing labels"
-msgstr ""
+msgstr "打印标签前必须选择仓储地点"
#: templates/js/translated/label.js:99
msgid "No labels found which match selected stock location(s)"
-msgstr ""
+msgstr "没有找到匹配选定库存地点的标签"
#: templates/js/translated/label.js:135
msgid "Part(s) must be selected before printing labels"
-msgstr ""
+msgstr "打印标签前必须选择商品"
#: templates/js/translated/label.js:154
msgid "No labels found which match the selected part(s)"
-msgstr ""
+msgstr "没有找到与所选商品相匹配的标签"
#: templates/js/translated/label.js:228
msgid "stock items selected"
-msgstr ""
+msgstr "已选择库存项"
#: templates/js/translated/label.js:236
msgid "Select Label"
-msgstr ""
+msgstr "选择标签"
#: templates/js/translated/label.js:251
msgid "Select Label Template"
-msgstr ""
+msgstr "选择标签模板"
#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
#: templates/js/translated/modals.js:610
msgid "Cancel"
-msgstr ""
+msgstr "取消"
#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
+#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
#: templates/modals.html:30 templates/modals.html:55
msgid "Submit"
msgstr ""
@@ -7272,113 +7373,238 @@ msgstr ""
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:933
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:945
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1042
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1057
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1058
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1081
msgid "Error requesting form data"
msgstr ""
#: templates/js/translated/model_renderers.js:40
msgid "Company ID"
+msgstr "公司ID"
+
+#: templates/js/translated/model_renderers.js:90
+msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:125
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:142
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:177
msgid "Part ID"
+msgstr "商品ID"
+
+#: templates/js/translated/model_renderers.js:231
+msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:251
msgid "Category ID"
-msgstr ""
+msgstr "类别 ID"
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:288
msgid "Manufacturer Part ID"
-msgstr ""
+msgstr "制造商商品ID"
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:317
msgid "Supplier Part ID"
-msgstr ""
+msgstr "供应商商品ID"
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:207
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:299
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:325
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:426
+msgid "Order Code"
+msgstr "订单编码"
+
+#: templates/js/translated/order.js:427
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:429
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:448
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:626
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:800
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+msgid "Unit Price"
+msgstr "单价"
+
+#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
+msgid "Total price"
+msgstr ""
+
+#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:963
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:967
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1004
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1042
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1120
msgid "No sales order allocations found"
msgstr ""
+#: templates/js/translated/order.js:1213
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1231
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1273
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1514
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1557
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1563
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1574
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1673
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1733
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1747
+msgid "No matching line items"
+msgstr ""
+
#: templates/js/translated/part.js:49
msgid "Part Attributes"
-msgstr ""
+msgstr "商品属性"
#: templates/js/translated/part.js:53
msgid "Part Creation Options"
-msgstr ""
+msgstr "商品创建选项"
#: templates/js/translated/part.js:57
msgid "Part Duplication Options"
-msgstr ""
+msgstr "商品重复选项"
#: templates/js/translated/part.js:61
msgid "Supplier Options"
@@ -7386,404 +7612,404 @@ msgstr ""
#: templates/js/translated/part.js:75
msgid "Add Part Category"
-msgstr ""
+msgstr "增加商品类别"
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:164
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:165
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:172
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:173
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:180
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:191
msgid "Copy Category Parameters"
-msgstr ""
+msgstr "复制类别参数"
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:192
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:200
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:201
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:257
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:258
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
+#: templates/js/translated/part.js:265
msgid "Copy BOM"
msgstr ""
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:266
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:273
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:274
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:287
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:331
msgid "Edit Part"
-msgstr ""
+msgstr "编辑商品"
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
msgid "Trackable part"
-msgstr ""
+msgstr "可追溯商品"
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
msgid "Virtual part"
-msgstr ""
+msgstr "虚拟商品"
-#: templates/js/translated/part.js:424
+#: templates/js/translated/part.js:435
msgid "Starred part"
-msgstr ""
+msgstr "已标记商品"
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:439
msgid "Salable part"
-msgstr ""
+msgstr "可销售商品"
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:554
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:932
msgid "No category"
-msgstr ""
+msgstr "没有分类"
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:955
+#: templates/js/translated/table_filters.js:359
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1202
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1260
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1282
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1296
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1321
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1376
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1377
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1478
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1497
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:63
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:93
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:104
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:105
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:147
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:148
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:154
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:155
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:159
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:160
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:164
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:165 users/models.py:195
msgid "Add"
-msgstr ""
+msgstr "添加"
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:169 templates/stock_table.html:63
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:258
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:298
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:456
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:458
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:463
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:489
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:515
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:563
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:670
msgid "In production"
-msgstr ""
+msgstr "正在生产"
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:674
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:678
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:682
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
-msgid "Stock item is in production"
-msgstr ""
+#: templates/js/translated/stock.js:688
+msgid "No stock location set"
+msgstr "未设置仓储地点"
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:844
+msgid "Stock item is in production"
+msgstr "库存品正在生产"
+
+#: templates/js/translated/stock.js:849
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:852
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:856
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:858
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:862
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:866
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:873
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:875
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:877
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
+#: templates/js/translated/stock.js:881
#: templates/js/translated/table_filters.js:161
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:935
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1008
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1046
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1155
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1182
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1184
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1358
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1372
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1373
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1512
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1559
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1578
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1597
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:1615
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:1638
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:1646
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:1687
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:1688
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:1812
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:1835
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:1863
msgid "Uninstall Stock Item"
msgstr ""
#: templates/js/translated/table_filters.js:56
msgid "Trackable Part"
-msgstr ""
+msgstr "可追溯商品"
#: templates/js/translated/table_filters.js:60
msgid "Assembled Part"
@@ -7808,7 +8034,7 @@ msgstr ""
#: templates/js/translated/table_filters.js:103
#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:336
msgid "Include subcategories"
msgstr ""
@@ -7850,7 +8076,7 @@ msgid "Batch code"
msgstr ""
#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:326
msgid "Active parts"
msgstr ""
@@ -7884,11 +8110,11 @@ msgstr ""
#: templates/js/translated/table_filters.js:171
msgid "In Production"
-msgstr ""
+msgstr "正在生产"
#: templates/js/translated/table_filters.js:172
msgid "Show items which are in production"
-msgstr ""
+msgstr "显示正在生产的项目"
#: templates/js/translated/table_filters.js:176
msgid "Include Variants"
@@ -7933,91 +8159,91 @@ msgstr ""
#: templates/js/translated/table_filters.js:263
msgid "Build status"
-msgstr ""
+msgstr "生产状态"
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:291
+#: templates/js/translated/table_filters.js:308
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:296
+#: templates/js/translated/table_filters.js:313
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:337
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:341
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:342
msgid "Part has internal part number"
-msgstr ""
+msgstr "商品有内部编号"
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:347
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:355
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
+#: templates/js/translated/table_filters.js:371
msgid "Starred"
msgstr ""
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:383
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:366
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:369
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:372
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:378
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:381
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:384
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:387
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:390
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:393
msgid "All"
msgstr ""
@@ -8027,25 +8253,21 @@ msgstr ""
#: templates/navbar.html:39
msgid "Buy"
-msgstr ""
+msgstr "采购"
#: templates/navbar.html:51
msgid "Sell"
-msgstr ""
+msgstr "销售"
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:83 users/models.py:39
msgid "Admin"
-msgstr ""
+msgstr "管理员"
-#: templates/navbar.html:89
+#: templates/navbar.html:85
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
-msgid "Login"
-msgstr ""
-
-#: templates/navbar.html:114
+#: templates/navbar.html:106
msgid "About InvenTree"
msgstr ""
@@ -8053,68 +8275,12 @@ msgstr ""
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
-msgstr ""
-
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-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."
-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."
-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."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
#: templates/stats.html:13
@@ -8159,23 +8325,27 @@ msgstr ""
#: templates/stats.html:63
msgid "Email Settings"
-msgstr ""
+msgstr "电子邮件设置"
#: templates/stats.html:66
msgid "Email settings not configured"
-msgstr ""
+msgstr "电子邮件设置未配置"
#: templates/stock_table.html:14
msgid "Export Stock Information"
msgstr ""
+#: templates/stock_table.html:20
+msgid "New Stock Item"
+msgstr ""
+
#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
#: templates/stock_table.html:43
msgid "Print test reports"
-msgstr ""
+msgstr "打印测试报表"
#: templates/stock_table.html:50
msgid "Stock Options"
@@ -8219,65 +8389,65 @@ msgstr ""
#: templates/yesnolabel.html:4
msgid "Yes"
-msgstr ""
+msgstr "确定"
#: templates/yesnolabel.html:6
msgid "No"
-msgstr ""
+msgstr "取消"
#: users/admin.py:64
msgid "Users"
-msgstr ""
+msgstr "用户"
#: users/admin.py:65
msgid "Select which users are assigned to this group"
-msgstr ""
+msgstr "选择分配给该组的用户"
#: users/admin.py:187
msgid "The following users are members of multiple groups:"
-msgstr ""
+msgstr "以下用户是多个群组的成员:"
#: users/admin.py:210
msgid "Personal info"
-msgstr ""
+msgstr "个人资料"
#: users/admin.py:211
msgid "Permissions"
-msgstr ""
+msgstr "权限"
#: users/admin.py:214
msgid "Important dates"
-msgstr ""
+msgstr "重要日期"
-#: users/models.py:177
+#: users/models.py:182
msgid "Permission set"
-msgstr ""
-
-#: users/models.py:185
-msgid "Group"
-msgstr ""
-
-#: users/models.py:188
-msgid "View"
-msgstr ""
-
-#: users/models.py:188
-msgid "Permission to view items"
-msgstr ""
+msgstr "权限设置"
#: users/models.py:190
+msgid "Group"
+msgstr "群组"
+
+#: users/models.py:193
+msgid "View"
+msgstr "视图"
+
+#: users/models.py:193
+msgid "Permission to view items"
+msgstr "查看项目权限"
+
+#: users/models.py:195
msgid "Permission to add items"
-msgstr ""
+msgstr "添加项目权限"
-#: users/models.py:192
+#: users/models.py:197
msgid "Change"
-msgstr ""
+msgstr "更改"
-#: users/models.py:192
+#: users/models.py:197
msgid "Permissions to edit items"
-msgstr ""
+msgstr "编辑项目权限"
-#: users/models.py:194
+#: users/models.py:199
msgid "Permission to delete items"
-msgstr ""
+msgstr "删除项目权限"